名称 | 特性 |
---|---|
HashMap | 基于散列表实现,插入与查询的开销固定,可通过构造器设置容量以及负载因子来调整容器的性能。由于使用了散列码进行搜索,因此搜索性能比一般的线性搜索高效很多(hashCode() 为 Object 的方法,因此所有对象都可以产生散列码) |
LinkedHashMap | 与HashMap类似,但是迭代遍历的时候拿键值对的顺序是插入顺序或最近最少使用顺序。比HashMap慢,但迭代访问时更快(因其内部次序基于链表) |
TreeMap | 基于红黑树,查看键或键值对时会被排序,其所有结果都是经过排序的。而且是唯一带有subMap()方法的Map,可以返回一个子树 |
WeakHashMap | 弱键值映射,允许释放映射所指向对象。如果映射之外没有引用指向某个键,则此键可被垃圾回收 |
ConcurrentHashMap | 线程安全的 Map,不涉及同步加锁 |
IdentityHashMap | 使用==代替 equals()对键进行比较的散列映射,专门为解决特殊问题设计 |
散列为映射中存储元素时最常用的方式。