Set Interface: HashSet, LinkedHashSet & TreeSet
1Concept
1. `HashSet`: Unordered, backed by a HashMap (O(1) add/contains/remove); 2. `LinkedHashSet`: Maintains insertion-order using a doubly-linked bucket chain; 3. `TreeSet`: Maintains natural or Comparator-sorted order backed by a Red-Black Tree (O(log N) operations).
2Architecture Diagram
HashSet: [ Element C, Element A, Element B ] (Unordered, O(1)) LinkedHashSet: [ Element A -> Element B -> Element C ] (Insertion Order Preserved) TreeSet: [ Root B ] / \ [ A ] [ C ] (Sorted Red-Black Tree, O(log N))
3Code Example
Core Java
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;
public class SetImplementationsDemo {
public static void main(String[] args) {
Set<String> hashSet = new HashSet<>();
Set<String> linkedSet = new LinkedHashSet<>();
Set<String> treeSet = new TreeSet<>();
for (String item : new String[]{"Gamma", "Alpha", "Beta"}) {
hashSet.add(item);
linkedSet.add(item);
treeSet.add(item);
}
System.out.println("HashSet (Unordered): " + hashSet);
System.out.println("LinkedHashSet (Insertion): " + linkedSet);
System.out.println("TreeSet (Sorted Order): " + treeSet);
}
}4Expected Output
HashSet (Unordered): [Gamma, Alpha, Beta] LinkedHashSet (Insertion): [Gamma, Alpha, Beta] TreeSet (Sorted Order): [Alpha, Beta, Gamma]
5Key Takeaways
- ✓TreeSet requires elements to implement `Comparable` or provide an explicit `Comparator`.
- ✓HashSet does not permit duplicate elements; uniqueness is verified using `hashCode()` and `equals()`.
- ✓LinkedHashSet has a slight memory overhead due to the doubly-linked list pointers.