java中HashMap、HashTable、TreeMap的区别总结【表格对比清楚明了】

 

底层

有序否

键值对能否为Null

遍历

线程安全

哈希Code

Hashmap

数组+链表

无序

都可null

iterator

不安全

内部hash方法

Hashtable

数组+链表

无序

都不可null

Enumeration(iterator

安全

Key自己的

TreeMap

红黑树

有序

valuenull

iterator

不安全

/

关于hashtable一般是用Enumeration遍历的,不过也可以强行用iterator,代码如下:

 1         Hashtable<String, Integer> hashtable  = new Hashtable<String, Integer>();
 2         hashtable.put("a", 12);
 3         hashtable.put("b", 13);
 4         hashtable.put("c", 14);
 5         
 6         Iterator<Entry<String, Integer>> iterator = hashtable.entrySet().iterator();
 7         
 8         while (iterator.hasNext()) {
 9             Map.Entry<java.lang.String, java.lang.Integer> entry = (Map.Entry<java.lang.String, java.lang.Integer>) iterator
10                     .next();
11             
12             System.out.println(entry.getKey() + ":" + entry.getValue());
13             
14         }

程序输出:

b:13
a:12
c:14

原文地址:https://www.cnblogs.com/Xieyang-blog/p/8886999.html