map 双列集合

map 双列集合

简化的集合框架图如下:
file

常用方法

方法名 描述 插入值 返回值 语法
put 添加元素 key,value put(key,value)
putAll 添加集合 Map集合 putAll(Map map)
get 通过key拿到元素 key value get(key)
clear 清空集合 clear()
containsKey 判断集合中是否有这个key Object boolean containsKey(Object o)
containsValue 判断集合是否有这个values Object boolean containsValue(Object o)
isEmpty 判断集合是否为空 boolean isEmpty()
size 获取集合的长度 int size()
keySet 返回key的set集合 key集合 keySet()
values 返回value的Collection集合 value集合 values()
entrySet 返回Entry的Set集合 Entry集合 entrySet()
remove 通过key移除 key remove()

总结一下

如果map的key和value存储的都是对象
key所在的集合是Set 我们一定要重写对象的 hashcode和equals 否则永远是不相等的
理解 如果对象没有重写hashcode的方法 他始终调用的是Objiect的方法 哈希值永远不会相等
判断value的时候 因为存储value是Collection 我们一定要重写对象的equals方法
不然对比就是内存地址 也永远不会相等

遍历

key是Set集合
value 是Collection集合
Enrty 是Set集合 Map.Entry
拿到Set集合可以通过增强for 或者迭代器
拿到Collection 集合也是可以通过增强for 和迭代器
拿到Entry的集合 也是可以通过增强for和迭代器
Map集合的特点 key -value的形式
其次 key是不可以重复的
key存储本质上是以Set集合存储的 我需要重写 hashcode和equals方法
value是可以重复的 也是无序的 Collection存储的
key 和vaule本质上是一个对象的两个属性
是Entry 的两个属性 Entry又是不可重复的 是以Set集合存储的