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 }