Read Also : Difference between TreeMap and HashMap in Java
Difference between TreeMap and TreeSet in Java
Interface : TreeMap implements Map interface while TreeSet implements Set interface.Duplicates : TreeMap allows duplicate values while TreeSet does not allow duplicate objects.
Implementation : TreeMap is a red-black tree based NavigableMap implementation.
TreeSet is a NavigableSet implementation based on a TreeMap.
Sorting : TreeMap is sorted based on keys while TreeSet is sorted based on objects.
Similarities between TreeMap and TreeSet in Java
1. Null values : Both TreeMap and TreeSet do not permit null values.2. Sorting : Both TreeMap and TreeSet are sorted. Sorted order can be natural sorted order defined by Comparable interface or custom sorted order defined by Comparator interface.
3. Performance : Both TreeMap and TreeSet provides guaranteed log(n) time cost for operation like get, put, containsKey and remove. Both internally uses Red-Black tree.
4. Synchronization : Both TreeMap and TreeSet are not synchronized. Hence, they are not used in concurrent applications.
5. Fail-fast Iterator : The iterator returned by the iterator method of the TreeMap and TreeSet are fail-fast. You can find more about fail-fast and fail-safe iterator here.
6. Package : Both classes belong to the java.util package and are part of the Java Collections Framework.
Example of TreeMap and TreeSet
import java.util.*;
public class TreeMapTreeSetExample {
public static void main(String args[]) {
TreeMap<String,String> map = new TreeMap<String,String>();
map.put("Alive is ","Awesome");
map.put("Love","yourself");
map.put("Be in ","present");
System.out.println("TreeMap object output :"+ map);
TreeSet set = new TreeSet();
set.add("Alive is Awesome");
set.add("Love yourself");
set.add("Be in present");
System.out.println("TreeSet object output :"+ set);
}
}
Output : TreeMap object output :{Alive is =Awesome, Be in =present, Love=yourself}
TreeSet object output :[Alive is Awesome, Be in present, Love yourself]
When to Use TreeMap and TreeSet
The classic example of using TreeMap and TreeSet is the implementation of dictionary and print it in alphabetical order. You can find the example below :import java.util.*;
public class Dictionary {
public static void main(String args[]) {
TreeMap<String,Set<String>> dictionary =
new TreeMap<String,Set<String>>();
Set<String> aWords = new TreeSet<>
(Arrays.asList("Alive","Awesome","All"));
Set<String> bWords = new TreeSet<>
(Arrays.asList("Be","Banana","Ball"));
dictionary.put("B", bWords);
dictionary.put("A", aWords);
System.out.println(dictionary);
}
}
Output : {A=[Alive, All, Awesome], B=[Ball, Banana, Be]}
Recap : Difference between TreeMap and TreeSet in Java
TreeMap | TreeSet | |
---|---|---|
Interface | implements Map interface | implements Set interface |
Duplicates | Allows duplicate values | No |
Implementation | Red-black tree based NavigableMap implementation | NavigableSet implementation based on a TreeMap. |
Sorting | Based on keys | Based on objects |
Please mention in the comments in case you have any questions regarding difference between TreeMap and TreeSet in java with examples.
0 Comments