Java学习记录day18--Map集合

    xiaoxiao2023-11-26  157

    Map集合也是一个容器,与Collection集合是相似的,但是没有关系。 Map集合称为键值对集合,Map集合中的每个元素是由两个值组成的。(双列集合) Map集合的每个元素称为键值对(key=value) Map集合的格式: { key1=value1 , key2=value2 , key3=value3 , …} 在设计中如果需要用到键值对集合的情况就要用到Map集合

    ###特点及注意事项: 1.Map集合的键无序,无索引,不重复的(针对于键的,键决定元素的特性,值只是一个附属品) 2.Map集合的值不做要求,是否重复都无所谓。 3.Map集合的键是唯一的。 4.Map集合的键值对都可以为null. 5.Map集合的每一个元素都是一个键值对! ###Map集合的常用API - public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。 - public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。 - public V get(Object key) 根据指定的键,在Map集合中获取对应的值。 - public Set keySet(): 获取Map集合中所有的键,存储到Set集合中。 - public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。 - public boolean containKey(Object key):判断该集合中是否有此键。

    public class MapDemo { public static void main(String[] args) { // 1.Map集合的常用API Map<String , Integer> maps = new HashMap<>(); // a.添加键值对元素 maps.put("huawei" , 1000); maps.put("小王" , 10); maps.put("iphone" , 10); System.out.println(maps); // b.根据键删除对应的整个元素。 // maps.remove("娃娃"); // System.out.println(maps); // c.提取所有的键到一个Set集合中去 // public Set<K> keySet() Set<String> keys = maps.keySet(); System.out.println(keys); // d.提取所有的值到一个Collection集合中去。 // public Collection<V> values() Collection<Integer> values = maps.values(); System.out.println(values); // e.获取集合的大小 System.out.println(maps.size()); // f.根据键获取对应的值 //public V get(Object key) System.out.println(maps.get("小王")); // g.判断是否包含某个键 System.out.println(maps.containsKey("老王")); // true System.out.println(maps.containsKey("老王1"));// false // h.判断是否包含某个值 System.out.println(maps.containsValue(1000));// true System.out.println(maps.containsValue(10)); // true System.out.println(maps.containsValue(1)); // false // i.判断集合是否为空 System.out.println(maps.isEmpty()); // false } }

    ###Map集合的遍历方式。 Map集合的遍历方式有三种: (1)键找值的方法遍历。 (2)键值对的方式遍历。 (3)JDK1.8的新技术:Lambda表达式。

    方式一:键找值的方式遍历。(简单的方式,推荐使用) a.先获取Map集合的全部键到一个Set集合。 b.然后通过遍历Set集合的键,根据键找值即可。 Set<String> keys = maps.keySet(); for(String key :keys){ String value = maps.get(key); System.out.println(key+"==>"+value); } 方式二:键值对的方式遍历。 a.把Map集合先通过entrySet()转换成Set集合 b.此时键值对元素就有了类型。类型叫Map的实体类型:Map.Entry<K , V> Set<Map.Entry<String, String>> entries = maps.entrySet(); for(Map.Entry<String, String> entry : entries){ String key = entry.getKey(); String value = entry.getValue(); System.out.println(key + "---->"+value); } 方式三:Lambda表达式。 public class MapDemo03 { public static void main(String[] args) { // 创建一个Map集合。 Map<String, String> maps = new HashMap<>(); maps.put("黄老师","广州"); maps.put("李老师","上海"); maps.put("陈老师","北京"); System.out.println(maps); maps.forEach((k , v) ->{ System.out.println(k+"--->"+v); }); } }
    最新回复(0)