底层 |
有序否 |
键值对能否为Null |
遍历 |
线程安全 |
哈希Code |
|
Hashmap |
数组+链表 |
无序 |
都可null |
iterator |
不安全 |
内部hash方法 |
Hashtable |
数组+链表 |
无序 |
都不可null |
Enumeration(iterator) |
安全 |
Key自己的 |
TreeMap |
红黑树 |
有序 |
仅value能null |
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