Map集合

Map集合

Map用于保存具有映射关系的数据,总是以键值对的方式存储数据。

1、那么Map重复key会有什么样的问题?

1 Map<String, Object> m=new HashMap<>();
2     m.put("zh", "中国");
3     m.put("JP", "日本");
4     m.put("EN", "英国");
5     m.put("USA", "美国");
6         m.put("zh", "中国");
7 System.out.println(m);

由此我们可以知道:key相同则覆盖values的值 以最后加入进去的值为真

2、如果值相同 而key不同 又会成为什么?

1 Map<String, Object> m=new HashMap<>();
2     m.put("zh", "中国");
3     m.put("JP", "日本");
4     m.put("EN", "英国");
5     m.put("USA", "美国");
6         m.put("zz", "中国");
7 System.out.println(m);

由此我们也可以得到:值相同而键不同,则创建两个,键值对只和键挂钩,和值无关

输出Map的key值:

Map<Integer, Object> m=new HashMap<>();
        //避免出现重复的键
    for(int i=0;i<10;i++) {
        if(!m.containsKey(i)) {
            m.put(i, "z"+i);
        }
    }
for(Integer i:m.keySet()) {
        System.out.println(i);
    }

输出Map的value的值:

Map<Integer, Object> m=new HashMap<>();
        //避免出现重复的键
    for(int i=0;i<10;i++) {
        if(!m.containsKey(i)) {
            m.put(i, "z"+i);
        }
    }
for(Object o:m.values()) {
        System.out.println(o);
    }

如果想同时输出key值和values值可以用Entry:

1 //同时输出key和values
2     //Entry
3     for(Entry<Integer, Object> emp:m.entrySet()) {
4         System.out.println("key"+emp.getKey()+"----value"+emp.getValue());
5     }
原文地址:https://www.cnblogs.com/hyfl/p/10904720.html