- Map接口实现类的特点(JDK8)
1. Map与Collection并列,用于保存具有映射关系的数据Key-Value;而在Set中,Value是对象常量”PRESENT"
2. Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中
3. Map中的key不允许重复,value可以重复
4. Map中的key可以null,value也可以为null,只能有一个key为null,可以有多个value为null
5. 当有相同key存在时,就替换
6. 常用String类作为Map的key
7. key和value之间存在单向一对一关系,即通过指定的key总能找到对应的value
8. Map存放数据的key-value是放在Node中的,因为Node实现了Entry接口
EntrySet集合存放的元素是Entry类型,里面里面有K和V,仅指向Node结点的K和V,只是为了遍历方便。换个说法就是将HashMap$Node对象存放到entrySet,因为Node实现了Entry,如上图所示。所以本质是接口的引用指向子类了。而接口Map.Entry提供了两个很好的方法,getKey()和getValue()。
- Map接口常用方法
- put:添加
- remove:根据键删除映射关系
- get:根据键获取值
- size:获取元素个数
- isEmpty:判断个数是否为0
- clear:清空
- containKey:查找键是否存在