Java中的Map类与比较器详解
1. Map类概述
在Java中,有多个类实现了Map接口,以下是这些类的总结:
| 类名 | 描述 |
| ---- | ---- |
| AbstractMap | 实现了大部分Map接口 |
| EnumMap | 扩展AbstractMap,用于枚举键 |
| HashMap | 扩展AbstractMap,使用哈希表 |
| TreeMap | 扩展AbstractMap,使用树结构 |
| WeakHashMap | 扩展AbstractMap,使用弱键的哈希表 |
| LinkedHashMap | 扩展HashMap,允许按插入顺序迭代 |
| IdentityHashMap | 扩展AbstractMap,比较元素时使用引用相等性 |
需要注意的是,AbstractMap是所有具体Map实现的超类。WeakHashMap实现了使用“弱键”的Map,当键不再被使用时,Map中的元素可以被垃圾回收,这里不再进一步讨论该类,下面详细介绍其他Map类。
2. HashMap类
HashMap类扩展了AbstractMap并实现了Map接口,它使用哈希表来存储Map,这使得即使对于大型集合,get()和put()方法的执行时间也能保持恒定。HashMap是一个泛型类,声明如下:
class HashMap<K, V>
其中,K指定键的类型,V指定值的类型。