Sobes.tech
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]
Can you explain the difference between HashSet… - sobes.tech