Maps and slices go a long way in Go, but sometimes you need more. This is a collection of collections that may be useful.
Ported Python and Java collections with love.
A queue is a first-in first-out data structure.
A set is an unordered collection of unique values typically used for testing membership.
Interface Set
is similar to Java Set and Python collections, which includes HashSet
and ConcurrentSet
implementation. Concurrent Set is supported by native sync.Map
and atomic
to keep size.
A skip list is a data structure that stores nodes in a hierarchy of linked lists. It gives performance similar to binary search trees by using a random number of forward links to skip parts of the list.
A splay tree is a type of binary search tree where every access to the tree results in the tree being rearranged so that the current node gets put on top.
A stack is a last-in last-out data structure.
A trie is a type of tree where each node represents one byte of a key.
A ternary search tree is similar to a trie in that nodes store the letters of the key, but instead of either using a list or hash at each node a binary tree is used. Ternary search trees have the performance benefits of a trie without the usual memory costs.