Java中Collection、Map常用实现类研究分析
接口/实现类 | 描述 | key是否可为null | 为null是否报错 | key是否重复 | key重复是否报错 | key是否和添加一致 | 是否线程安全 |
List | 一组元素的集合 | ||||||
ArrayList | 基于数组存储,读取快 | 是 | 否 | 是 | 否 | 是 | 否 |
LinkedList | 基于双向链表存储,插入快 | 是 | 否 | 是 | 否 | 是 | 否 |
Vector | 基于数组存储,效率较ArrayList慢 | 是 | 否 | 是 | 否 | 是 | 是 |
Map | |||||||
HashMap | 是 | 否 | 否 | 否 | 否 | 否 | |
TreeMap | 基于红黑树实现 | 否 | 是 | 否 | 否 | 否 | 否 |
ConcurrentHashMap | Hashtable升级版,比Hashtable快16倍 | 否 | 是 | 否 | 否 | 否 | 是 |
Hashtable | 单向链的二维数组 | 否 | 是 | 否 | 否 | 否 | 是 |
Set | |||||||
HashSet | 基于HashMap | 是 | 否 | 否 | 否 | 否 | 否 |
TreeSet | 基于TreeMap,数据自动排序 | 否 | 是 | 否 | 否 | 否 | 否 |