package com.javase.map; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; /** * 关于Map集合 * 1.Map和Collection没有继承关系。 * 2.Map集合以key和value的方式存储数据:键值对。 * key和value都是引用数据类型。 * key和value都是存储对象的内存地址。 * key起主导地位,value是key的附属品。 * 3.Map接口中常用的方法: * V put(K key, V value) 向Map集合中添加键值对 * V get(Object key) 通过key获取value * void clear() 清空集合 * boolean containsKey(Object key) 判断Map集合中是否包含某个key * boolean containsValue(Object value) 判断Map集合中是否包含某个value * boolean isEmpty() 判断Map集合中元素个数是否为0. * Set<K> keySet() 获取Map集合中的所有key * V remove(Object key) 通过key删除对应的键值对 * int size() 获取Map集合中键值对的个数 * Collection<V> values() 获取Map集合中的所有value,返回一个Collection * * Set<Map.Entry<K,V>> entrySet() 将Map集合转换成Set集合 * 假设现在有一个Map集合,如下图所示: * map1集合对象 * key value * -------------- * 1 zs * 2 ls * 3 ww * 4 zl * * 执行下一行代码 * Set set = map.entrySet(); * 生成的set集合如下: * 1=zs * 2=ls * 3=ww * 4=zl * * 注意:Map集合通过entrySet()方法转换成的Set集合中元素的类型是Map.Entry(静态内部类) */ public class MapText01 { public static void main(String[] args) { // 创建集合 Map<Integer,String> map = new HashMap<>(); // 向集合中添加键值对 map.put(1,"zs"); //这里的1通过自动装箱变成了Integer类型 map.put(2,"ls"); map.put(3,"ww"); map.put(4,"zl"); // 通过key获取value System.out.println(map.get(2)); //ls // 获取键值对的数量 System.out.println("集合中键值对的数量是:" + map.size()); //4 // 通过key删除key-value map.remove(2); System.out.println("集合中键值对的数量是:" + map.size()); //3 // 判断集合中是否包含某个key contains方法的底层都调用了equals()方法 System.out.println(map.containsKey(3)); //true // 判断集合中是否包含某个value System.out.println(map.containsValue("ww")); //true System.out.println(map.containsValue("ls")); //false,因为"ls"被删除了 System.out.println("***************************"); // 获取所有的value Collection<String> value = map.values(); // 利用增强for循环 for (String s:value) { System.out.println(s); } System.out.println("+++++++++++++++++++++++++++++"); // 获取map集合中所有的key Set<Integer> set = map.keySet(); // 使用foreach循环遍历set集合 for (Integer data:set) { System.out.println(data); } System.out.println("-------------------------------"); // 清空集合 map.clear(); // 判断集合是否为空 System.out.println(map.isEmpty()); //true } } /* 程序运行结果: ls 集合中键值对的数量是:4 集合中键值对的数量是:3 true true false *************************** zs ww zl +++++++++++++++++++++++++++++ 1 3 4 ------------------------------- true */
关于Map集合
于 2022-12-20 07:50:44 首次发布