Phase 16 of 20 · Topic 16.2

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.