Map接口

Map接口

1.存放key-value数据

key:不能重复 底层实现使用Set
value:可以重复 底层实现使用Collection

2.实现类

①.HashMap:主要实现类
②.LinkedHashMap:使用链表的方式维护添加Map元素的顺序
③.TreeMap
④.Hashtable:线程安全的,不建议使用
子类Properties:通常用来处理属性文件,键和值都是 String类型

3.常用方法

  • Object put(Object key,Object value):添加元素|修改

  • Object remove(Object key):移除元素 删除一个key-value

  • void putAll(Map t):添加集合

  • void clear():清空集合

  • Object get(Object key):获取指定value值,若没有找到对应的key则返回null

  • boolean containsKey(Object key) :判断是否包含某个key值

  • boolean containsValue(Object value) :判断是否包含某个value值

  • int size():获取元素个数

  • boolean isEmpty()

  • boolean equals(Object obj)

  • Set keySet():获取所有key的集合返回的是Set

  • Collection values()

  • Set entrySet():获取所有的Entry(key-value)对应的set集合

  • values():获取所有的value集合返回的是Collection

Map的遍历

1.Map中的key是使用Set存放,不可重复
2.Map中的value使用Collection来存放,可以重复
3.一个key-value,是一个Entry,Entry使用Set来存放,也是不可重复
4.在向Map中添加元素时,会调用key所在类的equals()方法,判断两个key是否相同,如果相同,添加的是后面的元素
5.遍历Map集合的常用方法 Set keySet() Collection values() Set entrySet()

// 1.遍历key的集合
Set set = map.keySet();
for (Object object : set) {
    System.out.println(object);
}


// 2.遍历value的集合
Collection values = map.values();
Iterator iterator = values.iterator();
while (iterator.hasNext()) {
    Object object = iterator.next();
    System.out.println(object);
}


// 3.遍历key-value对
// 方式一
Set set1 = map.keySet();
for (Object obj : set1) {
    Object key = obj;
    Object value = map.get(obj);
    // System.out.println("key:"+key+"- value:"+value);
    System.out.println("key:" + obj + "- value:" + map.get(obj));
}


// 方式二
Set set2 = map.entrySet();
for (Object object : set2) {
    Map.Entry entry = (Entry) object;
    Object key = entry.getKey();
    Object value = entry.getValue();
    System.out.println(key + ":" + value);
}

你可能感兴趣的:(JAVA)