Difference between TreeMap and TreeSet in Java
Difference
between TreeSet and TreeMap in Java
Main Difference between TreeMap and TreeSet is that TreeMap is implementation of Map interface while TreeSet is implementation of Set interface. There are some similarities between both TreeMap and TreeSet and few differences as well. In this Java tutorial we will first see similarities between TreeMap and TreeSet and than we will see differences between TreeMap andTreeSet in Java. Key point to remember about TreeMap and TreeSet is that they use compareTo() or compare() method to compare object, So if uses puts a String object in TreeSet of Integers, add() method will throw ClassCastException at runtime prior to Java 5, with Java 5 you can use Generics to avoid this happening by declaring TreeMap and TreeSet with parametrized version.
Main Difference between TreeMap and TreeSet is that TreeMap is implementation of Map interface while TreeSet is implementation of Set interface. There are some similarities between both TreeMap and TreeSet and few differences as well. In this Java tutorial we will first see similarities between TreeMap and TreeSet and than we will see differences between TreeMap andTreeSet in Java. Key point to remember about TreeMap and TreeSet is that they use compareTo() or compare() method to compare object, So if uses puts a String object in TreeSet of Integers, add() method will throw ClassCastException at runtime prior to Java 5, with Java 5 you can use Generics to avoid this happening by declaring TreeMap and TreeSet with parametrized version.
Similarities
between TreeMap
and
TreeSet
in
Java
Here is a list of similarities between TreeMap and TreeSet in Java:
Here is a list of similarities between TreeMap and TreeSet in Java:
1)
Both TreeMap
and
TreeSet
are
Sorted Collection
which means they keep there element in predefined Sorted order.
Sorting order can be
natural
sorting order defined by Comparable interface or custom sorting Order
defined by Comparator interface. Both TreeMap
and
TreeSet
has
overloaded constructor which accept a Comparator, if provided all
elements inside TreeSet
or
TreeMap
will
be compared and Sorted using this Comparator.
2)
TreeSet
is practically
implemented using TreeMap
instance,
similarly like HashSet
is backed by
HashMap
instance.
3)
Both TreeSet
and TreeMap
implements
Collection interface so they can be passed to method where a
Collection is accepted.
4)
Both TreeMap
and TreeSet
are non
synchronized Collection, hence can not be shared between multiple
threads. You can make both TreeSet
and TreeMap
synchronized
by wrapping them into Synchronized collection by
callingCollections.synchroinzedMap()
method.
5)
Iterator returned by TreeMap
and TreeSet
are fail-fast,
means they will throw ConcurrentModificationException when TreeMap
orTreeSet
is modified
structurally once Iterator is created. this fail-fast behavior is not
guaranteed but works in best effort.
6)
Both TreeMap
and TreeSet
are slower
than there Hash counter
part
like HashSet
and HashMap
and instead of
providing constant time performance for add, remove and get operation
they provide performance in O(log(n)) order.
TreeSet vs TreeMap in Java
Now
let's see some differences between TreeSet
vs TreeMap
in Java:
1)
Major difference between TreeSet
and TreeMap
is that
TreeSet
implements Set
interface while TreeMap
implements Map
interface in Java.
2)
Second difference between TreeMap
and TreeSet
is the way
they store objects. TreeSet
stores only
one object while TreeMap uses two objects called key and Value.
Objects in TreeSet
are sorted
while keys in TreeMap
remain in
sorted Order.
3)
Third difference between TreeSet
and TreeMap
is that,
former implements NavigableSet
while
later implementsNavigableMap
in
Java.
4)
Fourth difference is that duplicate objects are not allowed in
TreeSet
but duplicates
values are allowed in TreeMap.
That's
all on difference between TreeSet
and TreeMap
in Java. if
you find any other significant difference between TreeMap
andTreeSet
then please
post as comment.
0 comments:
Post a Comment