A hash list is very similar to a linked list, but as the name suggests, it’s backed by a hashtable. In most cases you should use LinkedList
instead as it’s faster in most operations. The main benefits of a hash list compared to a linked list are O(1) access to and contains checks for elements. This only really starts to matter with bigger lists. Hash lists can also have a bigger amount of maximum elements, since their entries dont consume an object.
Just like most other data structures, HashList<T>
is generic, with T
being the type of the elements you want to save.
@Test function testList()
let list = new HashList<int>
list.add(1, 2, 3, 4, 5)
// Contains check
list.hash(5).assertTrue()
// Get
let entry = list.get(2)
See Linked List for more list examples.
A hash set is a hashlist which may only contain each element once.
@Test function testList()
let hset = new HashSet<int>
hset.add(1, 2, 2, 4, 4)
// Size check
hset.size().assertEquals(3)
// Get
hset.get(2).assertEquals(4)