Map接口概述
- Map与Collection并列存在。用于保存具有映射关系的数据:key-value
- Map 中的 key 和 value 都可以是任何引用类型的数据
- Map 中的 key 用Set来存放,不允许重复,即同一个 Map 对象所对应的类,须重写hashCode()和equals()方法
- 常用String类作为Map的“键”
- key 和 value 之间存在单向一对一关系,即通过指定的 key 总能找到唯一的、确定的 value
- Map接口的常用实现类:HashMap、TreeMap、LinkedHashMap和Properties。其中,HashMap是 Map 接口使用频率最高的实现类
添加、删除、修改操作:
Object put(Object key,Object value)
:将指定key-value添加到(或修改)当前map对象中void putAll(Map m)
:将m中的所有key-value对存放到当前map中Object remove(Object key)
:移除指定key的key-value对,并返回valuevoid clear()
:清空当前map中的所有数据
元素查询的操作:
Object get(Object key)
:获取指定key对应的valueboolean containsKey(Object key)
:是否包含指定的keyboolean containsValue(Object value)
:是否包含指定的valueint 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集合
Map map = new HashMap(); //map.put(..,..)省略 System.out.println("map的所有key:"); Set keys = map.keySet();// HashSet for (Object key : keys) { System.out.println(key + "->" + map.get(key)); } System.out.println("map的所有的value:"); Collection values = map.values(); Iterator iter = values.iterator(); while (iter.hasNext()) { System.out.println(iter.next()); } System.out.println("map所有的映射关系:"); // 映射关系的类型是Map.Entry类型,它是Map接口的内部接口 Set mappings = map.entrySet(); for (Object mapping : mappings) { Map.Entry entry = (Map.Entry) mapping; System.out.println("key是:" + entry.getKey() + ",value是:" + entry.getValue()); }