Distinguish, differentiate, compare and explain what is the difference between HashSet and TreeSet in Java.
Difference between HashSet and TreeSet in Java
1. In terms of ordering or sorting: HashSet doesn’t provide any ordering guarantee, whereas TreeSet provides ordering /sorting guarantee.
2. In terms of null element: HashSet allows one null element while TreeSet doesn’t allows null objects.
3. In terms of complementation: HashSet is internally implemented using Hash Map while TreeSet is internally implemented using TreeMap.
4. In terms of comparison and duplicate detection: HashSet uses equals() method for comparison. TreeSet uses compareTo() method for comparison
5. In terms of underlying data structure: HashSet is backed by hash table, whereas TreeSet is backed by Red-Black Tree.
6. In terms of performance: HashSet is faster while TreeSet is slower for most of the general purpose operation e.g. add, remove and search