Difference between TreeMap and TreeSet in Java
来源:互联网 发布:淘宝注册网店步骤费用 编辑:程序博客网 时间:2024/04/29 11:28
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 and TreeSet 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 calling Collections.synchroinzedMap() method.
5) Iterator returned by TreeMap and TreeSet are fail-fast, means they will throw ConcurrentModificationException when TreeMap or TreeSet 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 provideperformance 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 implements NavigableMap in Java.
4) Fourth difference is that duplicate objects are not allowed in TreeSet butduplicates 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 and TreeSet then please post as comment.
- Difference between TreeMap and TreeSet in Java
- Difference between HashMap, LinkedHashMap and TreeMap in Java
- Difference between Externalizable and Serializable in Java
- Difference between Vector and ArrayList in java?
- Difference between Comparator and Comparable in Java
- Difference between RegularEnumSet and JumboEnumSet in Java
- Difference between Comparator and Comparable in java
- Difference between Stack and Heap in Java
- Difference between ArrayList and Vector In java
- Difference between HashMap and Hashtable in Java
- Difference between Enumeration and Iterator in Java
- Difference between HashSet and HashMap in Java
- Difference between parseInt and valueOf in java?
- Difference between ArrayList and LinkedList in Java
- Difference between HashMap, LinkedHashMap and TreeMap
- Difference between ConcurrentHashMap and Collections.synchronizedMap and Hashtable in Java
- Difference between ConcurrentHashMap and Collections.synchronizedMap and Hashtable in Java
- Java - Difference between Stack and Heap memory in Java
- Ubuntu--The package system is broken
- 基于UDT connect连接通信以及文件传输--客户端
- JDOM Example : Reading and Parsing XML with SAX parser in Java
- MFC OnOk(),OnCancel(),OnClose(),OnDestroy()的区别总结
- 生产者消费者模式C++程序模拟实现
- Difference between TreeMap and TreeSet in Java
- 黑马程序员-学习笔记java基础-高级类特性
- Can we Override Private Method in Java? Inner Class?
- Java字节码指令集
- Visual Studio 十五个开发技巧
- QueryRunner使用
- matlab与c混合编程
- How Synchronization works in Java ? Example of synchronized Block and Method
- 6.1 评估方法——SCAMPI A 评估办法