Junior — Middle
Can you explain the difference between HashSet, LinkedHashSet, and TreeSet in Java?
sobes.tech AI
Answer from AI
In Java, HashSet, LinkedHashSet, and TreeSet are implementations of the Set interface, but they differ in internal structure and behavior:
- HashSet: based on a hash table. Does not guarantee the order of elements. Fast access (average O(1)).
- LinkedHashSet: extends HashSet but maintains insertion order of elements thanks to a linked list inside. Ideal if order of addition is needed.
- TreeSet: based on a red-black tree (a data structure for sorting). Stores elements in sorted order (by natural order or comparator). Operations are slower (O(log n)).
Example:
Set<String> hashSet = new HashSet<>();
Set<String> linkedHashSet = new LinkedHashSet<>();
Set<String> treeSet = new TreeSet<>();
hashSet.add("banana");
hashSet.add("apple");
hashSet.add("orange");
linkedHashSet.add("banana");
linkedHashSet.add("apple");
linkedHashSet.add("orange");
treeSet.add("banana");
treeSet.add("apple");
treeSet.add("orange");
System.out.println(hashSet); // Order is not defined
System.out.println(linkedHashSet); // [banana, apple, orange]
System.out.println(treeSet); // [apple, banana, orange]