Map接口继承树

Map接口概述
- Map与Collection并列存在。用于保存具有映射关系的数据:key-value
- Map 中的 key 和 value 都可以是任何引用类型的数据,key-value共同构成了一个Entry对象
- Map中的entry:无序的、不可重复的,使用Set存储所有的Entry对象
- Map 中的 key 用Set集合来存放,不允许重复,即key所在的类要重写equals()和hashCode() (以HashMap为例)
- 常用String类作为Map的“键”
- key 和 value 之间存在单向一对一关系,即通过指定的 key 总能找到唯一的、确定的 value

常用方法
添加、删除、修改操作
Object put(Object key,Object value):将指定key-value添加到(或修改)当前map对象中void putAll(Map m):将m中的所有key-value对存放到当前map中Object remove(Object key):移除指定key的key-value对,并返回value void clear():清空当前map中的所有数据
元素查询的操作
Object get(Object key):获取指定key对应的value,如果不包含该键的映射,则为nullboolean containsKey(Object key):是否包含指定的keyboolean containsValue(Object value):是否包含指定的value int size():返回map中key-value对的个数 boolean isEmpty():判断当前map是否为空boolean equals(Object obj):判断当前map和参数对象obj是否相等
元视图操作的方法
Set keySet():返回所有key构成的Set集合 Collection values():返回所有value构成的Collection集合Set entrySet():返回所有key-value对构成的Set集合
public void test(){Map map = new HashMap();map.put("AA",123);map.put(45,1234);map.put("BB",56);//遍历所有的key集:keySet()Set set = map.keySet();Iterator iterator = set.iterator();while(iterator.hasNext()){System.out.println(iterator.next());}//遍历所有的value集:values()Collection values = map.values();for(Object obj : values){System.out.println(obj);}//遍历所有的key-value//方式一:entrySet()Set entrySet = map.entrySet();Iterator iterator1 = entrySet.iterator();while (iterator1.hasNext()){//obj接收的是entrySet集合中的元素:entry(一对键值对)Object obj = iterator1.next();//强转目的:调用entry重特有的getkey和getvalue方法Map.Entry entry = (Map.Entry) obj;System.out.println(entry.getKey() + "---->" + entry.getValue());}//方式二:Set keySet = map.keySet();Iterator iterator2 = keySet.iterator();while(iterator2.hasNext()){Object key = iterator2.next();//通过get方法回去value值Object value = map.get(key);System.out.println(key + "=====" + value);}}
