Map集合的特点

1、Map集合中保存的都是键值对,键和值是一一对应的

2、一个映射不能包含重复的值

3、每个键最多只能映射到一个值上

 

Map接口和Collection接口的不同

Map是双列集合的根接口,Collection是单列集合的根接口

1、Map是双列的(是双列集合的根接口),Collection是单列的(是单列集合的根接口)

2、Map的键是唯一的,Collection的子接口Set是唯一的

3、Map集合的数据结构值针对键有效,跟值无关;如:TreeMap:键是用二叉树算法,HashMap:键是hash算法, Collection集合的数据结构是针对元素有效

 

Map集合的遍历方式

 

package com.jd.text;

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class Demo06 {

    public static void main(String[] args) {
        // 创建map集合
        Map map = new HashMap<>();
        // 添加 将指定的值与此映射中的指定键关联
        map.put("张三", 12);
        map.put("李四", 13);
        map.put("蔡文姬", 14);
        map.put("王五", 15);
        // 删除 如果存在一个键的映射关系,则将其从此映射中移除
        map.remove("王五");
        // map.clear();//删除全部 从此映射中移除所有映射关系
        // 根据指定的key获取对应的value
          obj1 = map.get("张三");
        System.out.println(obj1);
        // 是否包含指定的key,包含返回true,不包含返回false。
        boolean b = map.containsKey("张三");
        System.out.println(b);
        // 是否包含指定的value,包含返回true,不包含返回false。
        boolean c = map.containsValue(13);
        System.out.println(c);
        
        System.out.println("******************************");
        
        // map集合的遍历,通过keyset()方法(迭代器)
        Set keySet = map.keySet();
        Iterator iter = keySet.iterator();
        while (iter.hasNext()) {
              key = iter.next();
              value = map.get(key);
            System.out.println(key + ":" + value);
        }
        System.out.println("******************************");
        
        // map集合的遍历,通过keyset()方法(foreach)
        Set keySet2 = map.keySet();
        for (  key : keySet2) {
              value = map.get(key);
            System.out.println(key + ":" + value);
        }
        System.out.println("******************************");
        
        // map集合的遍历,通过entrySet()方法(foreach)
        Set entrySet = map.entrySet();
        for (  obj3 : entrySet) {
            Entry e = (Entry) obj3;
              key = e.getKey();
              value = e.getValue();
            System.out.println(key + ":" + value);
        }
        System.out.println("******************************");
        
        // map集合的values方法,获取到的map集合的value的值组成的collection集合
        Collection coll = map.values();
        for (  obj : coll) {
            System.out.println(obj);
        }
    }
}

运行结果:

12
true
true
******************************
李四:13
张三:12
蔡文姬:14
******************************
李四:13
张三:12
蔡文姬:14
******************************
李四:13
张三:12
蔡文姬:14
******************************
13
12
14

 

收藏 打印