Java中,Map的实现类,常见的有HashMap,TreeMap,LinkedHashMap,HashTable,ConcurrentHashMap。这几种实现类的共同点是:
当增加已存在的key-value时,value会覆盖。相同的key,只能有一个。
他们的区别如下:
是否排序 | 是否允许为null | 是否线程同步 | 备注 | |
---|---|---|---|---|
HashMap | 不排序 | key和value允许为null | 不同步 | |
TreeMap | 按照key升序排列 | key不允许为null | 不同步 | |
LinkedHashMap | 按照记录插入顺序排列 | key和value都不允许为null | 不同步 | |
HashTable | 不排序 | key和value都不允许为null | 同步 | 线程同步,但效率低,不推荐使用 |
ConcurrentHashMap | 同步 | 线程同步时,推荐使用该类型 |