map定义:将键映射到值的对象。key必须唯一,但是value可以重复。当你添加相同key的值的时候,value会被覆盖。
与之前的collection有什么区别呢?
A:Map 存储的是键值对形式的元素,键唯一,值可以重复。【夫妻对】
B:Collection 存储的是单独出现的元素,子接口Set元素唯一,子接口List元素可重复。【光棍】
常见操作
boolean isEmpty()
如果此映射未包含键-值映射关系,则返回 true。
Set<K> keySet()
获取该map的所有key
V put(K key, V value)
将指定的值与此映射中的指定键关联(可选操作)。
void putAll(Map<? extends K,? extends V> m)
从指定映射中将所有映射关系复制到此映射中(可选操作)。
V remove(Object key)
如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
int size()
返回此映射中的键-值映射关系数。
遍历操作
A:键找值
a:获取所有键的集合
b:遍历键的集合,得到每一个键
c:根据键到集合中去找值
B:键值对对象找键和值
a:获取所有的键值对对象的集合
b:遍历键值对对象的集合,获取每一个键值对对象
c:根据键值对对象去获取键和值
Map<String,String> hm = new HashMap<String,String>(); hm.put("it002","hello"); hm.put("it003","world"); hm.put("it001","java"); //方式1 键找值 Set<String> set = hm.keySet(); for(String key : set) { String value = hm.get(key); System.out.println(key+"---"+value); } //方式2 键值对对象找键和值 Set<Map.Entry<String,String>> set2 = hm.entrySet(); for(Map.Entry<String,String> me : set2) { String key = me.getKey(); String value = me.getValue(); System.out.println(key+"---"+value); }