Map接口继承树

Map接口 - 图1


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

image.png


常用方法

添加、删除、修改操作

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,如果不包含该键的映射,则为null
boolean containsKey(Object key):是否包含指定的key
boolean 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集合

  1. public void test(){
  2. Map map = new HashMap();
  3. map.put("AA",123);
  4. map.put(45,1234);
  5. map.put("BB",56);
  6. //遍历所有的key集:keySet()
  7. Set set = map.keySet();
  8. Iterator iterator = set.iterator();
  9. while(iterator.hasNext()){
  10. System.out.println(iterator.next());
  11. }
  12. //遍历所有的value集:values()
  13. Collection values = map.values();
  14. for(Object obj : values){
  15. System.out.println(obj);
  16. }
  17. //遍历所有的key-value
  18. //方式一:entrySet()
  19. Set entrySet = map.entrySet();
  20. Iterator iterator1 = entrySet.iterator();
  21. while (iterator1.hasNext()){
  22. //obj接收的是entrySet集合中的元素:entry(一对键值对)
  23. Object obj = iterator1.next();
  24. //强转目的:调用entry重特有的getkey和getvalue方法
  25. Map.Entry entry = (Map.Entry) obj;
  26. System.out.println(entry.getKey() + "---->" + entry.getValue());
  27. }
  28. //方式二:
  29. Set keySet = map.keySet();
  30. Iterator iterator2 = keySet.iterator();
  31. while(iterator2.hasNext()){
  32. Object key = iterator2.next();
  33. //通过get方法回去value值
  34. Object value = map.get(key);
  35. System.out.println(key + "=====" + value);
  36. }
  37. }