Skip to content
gcx edited this page Nov 30, 2020 · 10 revisions
  • Linear Collection:Extension to the go standard library about the collection. Mainly inspired by the most common utils in java.util. This section only covers linear data structures. Note that all the collections in this project do not allow nil element.

    • ArrayList: Resizable-array implementation of the List interface, based on the basic type of slice. This collection implements all list operations like append, insert, remove, get and set, and is much similiar to java.util.ArrayList.
    • LinkedList: Doubly-linked list implementation of the List, Stack, Queue and Deque interfaces. This collection implements all double-linked list operations like addFirst, removeFirst, addLast and removeLast, and is much similiar to java.util.LinkedList.
    • PriorityQueue: An unbounded priority queue based on a priority heap. The elements of the priority queue are ordered according to the specific parameter 'precede'. This collection implements all queue operations like add and poll, and is much similiar to java.util.PriorityQueue.
    • ArrayDeque: Resizable-array implementation of the Deque interface based on loop array, which may be faster than LinkedList when used as a queue or stack. This collection implements all deque operations like add and remove, and is much similiar to java.util.ArrayDeque.
    • HashSet: Implementation the Set interface backed by a hash table(actually the basic type of map). This collection implements all set operations like add and remove, and is much similiar to java.util.HashSet.
    • SortedSet: Implementation the SortedSet interface backed by a sorted map.
  • Map

    • SkipListMap: A scalable SortedMap implementation based on skiplist. The elements are ordered according to the specific parameter 'precede'. This collection implements all operations of SortedMap like add and remove.
  • Limiting

    • PermitLimiter
    • LeakyLimiter
    • SlidingWindow
  • Caching

    • LRU
    • LRU2
    • LFU