规则:
Map集合是一个双列集合, 元素有键值对构成. (key - value)
key值 不可以重复的, value是可以重复的 (因为Map中的key是存储到了set集合中)
一个key只能对应一个value, 而多个不同的key 可以对应同一个value
访问key可以直接获得value
Map本先就是一个顶层接口 它没有继承或实现Collection
语法:
Map集合的创建 : Map<key数据类型,value数据类型> 集合名称 = new HashMap<>();
存储数据: 集合名称.put(key,value);
删除数据:集合名称.remove(value);
获取元素 数据类型 变量名 = 集合名称.get(key);
注: HashMap 可以用null来作为key的值, 但是有且只能有一个
通过 keySet() 来遍历
//1.使用keySet遍历集合 Set<Integer> set = map.keySet(); for (Integer key : set) { String value = map.get(key); System.out.println(key + ":" + value); }
通过 entrySet() 来遍历
//2. 使用entrySet遍历集合 Set<Map.Entry<Integer, String>> entries = map.entrySet(); for (Map.Entry<Integer, String> entry : entries) { Integer key = entry.getKey(); String value = entry.getValue(); System.out.println(key + ":" + value); }
通过 iterator() 来遍历
//3. 使用iterator遍历集合 Iterator<Integer> iterator = map.keySet().iterator(); while (iterator.hasNext()){ Integer key = iterator.next(); String value = map.get(key); System.out.println(key + ":" + value); }
通过 values() 来遍历
//4. 使用values遍历集合 Collection<String> values = map.values(); for (String value : values) { System.out.println(value); }
通过 lambda表达式 来遍历
//5. 使用lambda遍历集合 map.forEach((k,v)->{ System.out.println(k + ":" + v); });