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