Difference between
HashSet and TreeSet
HashSet

TreeSet


Ordering

Stores the object in random order.
There is no guarantee to output as
insertion order.

Elements are sorted according to the
natural ordering of its elements in TreeSet.
We can use comparator to sort the
elements.

Null value

HashSet can store null object.

Storing the null object in TreeSet
object, it will throw NullPointer Exception.

Performance

HashSet take constant time
performance for the basic operations like add, remove contains and size.

TreeSet guarantees log(n) time cost
for the basic operations (add,remove,contains).

Speed

HashSet is much faster than TreeSet,
as time complexity of HashSet is
constant.
Iteration performance of HashSet
mainly depends on the load factor and initial capacity parameters.

Slow because most of operation in
log(n) time complexity.
(add,remove, contains and size).

Internal implementation

HashSet are internally backed by
hashmap.

TreeSet is backed by a Navigable
TreeMap.

Functionality

Methods pollFirst(), pollLast(), first(),
last(), ceiling(), lower() etc. makes TreeSet rich in functionality.


Comparision

HashSet uses equals() method for
comparison in java.

TreeSet uses compareTo() method for
maintaining ordering.

No comments:
Post a Comment