HashMap集合与TreeMap集合的比较
来源:互联网 发布:世界进出口数据 编辑:程序博客网 时间:2024/05/29 15:41
1、HashMap集合是可以插入Null键的,而TreeMap不可以插入Null键
具体如以下程序所示:
package _11.homework;import java.util.HashMap;import java.util.TreeMap;public class Compare { public static void main(String[] args){ HashMap<Integer,String> hashMap=new HashMap<Integer,String>(); hashMap.put(null, "sindy"); hashMap.put(0002,null); hashMap.put(null,null); System.out.println(hashMap); System.out.println("------------------------------------------------------------------"); TreeMap<Integer,String> treeMap=new TreeMap<Integer,String>(); treeMap.put(null, "judy"); treeMap.put(0004,null); treeMap.put(null,null); System.out.println(treeMap); }}运行结果:{null=null, 2=null}-----------------------------------------------------------Exception in thread "main" java.lang.NullPointerException at java.util.TreeMap.compare(TreeMap.java:1188) at java.util.TreeMap.put(TreeMap.java:531) at _11.homework.Compare.main(Compare.java:15)
2、HashMap集合的元素唯一并且无序,而TreeMap集合的元素不仅唯一而且是排好顺序的。(原因:TreeMap集合底层的数据结构是基于红黑树的(将数据与根节点进行比较,如果相减为负数放在节点的左边,相为0则拒绝进入,为正数则放在节点右边;并且红黑树是自平衡的。因此TreeMap集合的元素唯一且排好顺序,但是排序是有条件的即必须实现Comparable接口 重写 CmcompareTo(T)方法,一般String和Integer类型底层已经重写过了,可以直接用!若是自己写的类则要重写CompareTo(T)方法);HashMap集合的底层是哈希表结构,只能保证元素的唯一性(哈希表结构重写了equals()方法和hashCode()方法))
具体比较键下列程序:
package _11.homework;import java.util.HashMap;import java.util.TreeMap;public class Compare { public static void main(String[] args){ HashMap<String,Integer> hashMap=new HashMap<String,Integer>(); hashMap.put("sindy",10); hashMap.put("amy",3); hashMap.put("alice",5); hashMap.put("sindy",10); System.out.println(hashMap); System.out.println("------------------------------------------------------------------"); TreeMap<String,Integer> treeMap=new TreeMap<String,Integer>(); treeMap.put("sindy",10); treeMap.put("amy",3); treeMap.put("alice",5); treeMap.put("alice",5); System.out.println(treeMap); }}运行结果:{amy=3, alice=5, sindy=10}----------------------------{alice=5, amy=3, sindy=10}
阅读全文
0 0
- HashMap集合与TreeMap集合的比较
- java集合-hashMap与TreeMap
- java集合类(六)HashMap与TreeMap的应用
- HashMap集合和TreeMap集合
- HashMap集合中的TreeMap集合
- 集合之HashMap、TreeMap
- Map集合HashMap,TreeMap
- java-集合(6)-TreeSet,HashSet与TreeSet比较,HashMap,TreeMap只有在排序的功能时使用
- Map集合HashMap TreeMap的输出方法
- 集合类的学习--TreeMap && TreeMap vs HashMap
- TreeSet、TreeMap、HashSet、HashMap、HashTable、ArrayList、LinkedList、Vector集合的全部比较
- Java集合详解三:HashMap、LinkedHashMap、TreeMap、Hashtable的区别与使用
- JAVA学习【8】集合框架HashMap、TreeMap的基本用法
- java集合类HashMap、TreeMap等介绍
- Java之集合HashMap,LinkedHashMap和TreeMap
- Java集合学习--HashMap、LinkedHashMap、TreeMap、HashTable
- Java-集合框架Map之HashMap、TreeMap
- java集合Map,HashMap,TreeMap知识点总结
- 多线程编程中的Master-Worker模式
- 车牌识别系统
- ArcGIS 连接postgreSQL数据库发布要素服务
- Java/Android 获取网络重定向文件的真实URL
- python高级函数-匿名函数lambda
- HashMap集合与TreeMap集合的比较
- .写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)C语言
- 多线程编程中Future模式
- NOIP2017爆零记
- LayoutInflator的用法
- A Linux Kernel Miracle Tour
- 嵌入式 G711A编码音频转码为AAC过程代码示例
- Git分支
- 框架学习--hibernate外键映射文件配置