Basic Question in Java is usually what is the difference between Set/List/Map.
Set – is used usually used when you want to keep a collection of items that have no duplicates. Plain and simple. So think set when you want a unique collection of items.
- TreeSet (interface: SortedSet) – sorts the value in the set by natural ordering or comparator
- HashSet – no ordering, puts objects in different buckets based on their hash, faster than treeset
List – is used with regards to just keeping a sequence of objects, it does not care about duplicates the primary focus of sequence and iteration
- ArrayList – basic list of items, random access, thread-safe
- Vector – non thread safe version of Arraylist
- Linked List – items are doubly linked to each other
Map – on the other hand has a key-value collection, you assign a key to a particular object, say you have 2 dog objects, you can assign different keys for each dog objects, like: Brownie and Blackie. So if you fetch from the collection Blackie, it will return that specific object associated to that key.
- TreeMap (interface SortedMap) – ordered version of map
- HashMap – no ordering of map, different buckets per object based on hash
- LinkedHashMap – doubly linked objects version of map