TreeMap and TreeSet of a simple Java type


TreeMap and TreeSet

TreeMap and TreeSet are basic Java collections added in Java 1.2. TreeMap is a mutable, ordered, Map implementation. Similarly, TreeSet is a mutable, ordered Set implementation.

TreeMap is implemented as a Red-Black tree, which provides O(log n) access times. TreeSet is implemented using a TreeMap with dummy values.

Both collections are not thread-safe.


TreeMap of a simple Java type

First, we create an empty map, and insert some elements into it:

Version ≥ Java SE 7
  TreeMap<Integer, String> treeMap = new TreeMap<>();
Version < Java SE 7
  TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
  treeMap.put(10, "ten");
  treeMap.put(4, "four");
  treeMap.put(1, "one");
  treeSet.put(12, "twelve");

Once we have a few elements in the map, we can perform some operations:

System.out.println(treeMap.firstEntry()); // Prints 1=one
System.out.println(treeMap.lastEntry()); // Prints 12=twelve
System.out.println(treeMap.size()); // Prints 4, since there are 4 elemens in the map
System.out.println(treeMap.get(12)); // Prints twelve
System.out.println(treeMap.get(15)); // Prints null, since the key is not found in the map

We can also iterate over the map elements using either an Iterator, or a foreach loop. Note that the entries are printed according to their natural ordering, not the insertion order:

Version ≥ Java SE 7
for (Entry<Integer, String> entry : treeMap.entrySet()) {
   System.out.print(entry + " "); //prints 1=one 4=four 10=ten 12=twelve
}
 
Iterator<Entry<Integer, String>> iter = treeMap.entrySet().iterator();
while (iter.hasNext()) {
   System.out.print(iter.next() + " "); //prints 1=one 4=four 10=ten 12=twelve
}

TreeSet of a simple Java Type

First, we create an empty set, and insert some elements into it:

Version ≥ Java SE 7
  TreeSet<Integer> treeSet = new TreeSet<>();
//Version < Java SE 7
  TreeSet<Integer> treeSet = new TreeSet<Integer>();
  treeSet.add(10);
  treeSet.add(4);
  treeSet.add(1);
  treeSet.add(12);

Once we have a few elements in the set, we can perform some operations:

System.out.println(treeSet.first()); // Prints 1
System.out.println(treeSet.last()); // Prints 12
System.out.println(treeSet.size()); // Prints 4, since there are 4 elemens in the set
System.out.println(treeSet.contains(12)); // Prints true
System.out.println(treeSet.contains(15)); // Prints false

We can also iterate over the map elements using either an Iterator, or a foreach loop. Note that the entries are printed according to their natural ordering, not the insertion order:

Version ≥ Java SE 7
for (Integer i : treeSet) {
 System.out.print(i + " "); //prints 1 4 10 12
}
 
Iterator<Integer> iter = treeSet.iterator();
while (iter.hasNext()) {
 System.out.print(iter.next() + " "); //prints 1 4 10 12
}

Basic Programs