1. Map比较
| HashTable | HashMap | ConcurrentHashMap | LinkedHashMap | TreeMap |
---|
线程安全? | 安全 | 不安全 | 安全 | 不安全 | 不安全 |
可存null | 都不可以 | 允许一个null的key,多个null的value | | | |
key顺序 | 无序 | 无序 | 无序 | 保留存入顺序 | 对key按指定顺序排序 |
底层实现 | 数组+链表 | 数组+单向链表+红黑树(1.8之后) | 数组+单向链表+红黑树 | 数组+双向链表 | 红黑树 |
2. 遍历map
public class TestMap {
public static void main(String[] args) {
Map<Integer, String> map = getMap();
for (Map.Entry<Integer, String> entry : map.entrySet()){
System.out.println(entry.getKey() + " : " + entry.getValue());
}
map.forEach((k, v) -> System.out.println(k + " : " + v));
}
private static Map<Integer, String> getMap(){
Map<Integer, String> map = new HashMap<>();
map.put(1, "a");
map.put(2, "b");
map.put(3, "c");
return map;
}
}