1 package maptest; 2 3 import org.junit.Test; 4 5 import java.util.*; 6 7 /** 8 * Map接口中定义的方法: 9 * 添加、删除、修改操作: 10 * Object put(Object key,Object value):将指定的key-value添加到(或修改)当前map对象中 11 * void putAll(Map m):将m中的所有key-value对存放到当前的map中 12 * Object remove(Object key):移除指定key的key-value对,并返回value 13 * void clear():清空当前map中的所有数据 14 * 15 * 元素查询的操作: 16 * Object get(Object key):获取指定key对应的value 17 * boolean containsKey(Object key):是否包含指定的key 18 * boolean containsValue(Object value):是否包含指定的value 19 * int size():返回map中key-value对的个数 20 * boolean isEmpty():判断当前map是否为空 21 * boolean equals(Object obj):判断当前map和参数对象是否相等 22 * 23 * 元视图操作的方法: 24 * Set keySet():返回所有key构成的Set集合 25 * Collection values():返回所有value构成的Collection集合 26 * Set entrySet():返回所有key-value对构成的Set集合 27 * 28 * @author FuJingchao 29 * @Date: 2021/12/23 - 20:33 30 */ 31 public class MapFucTest { 32 33 //添加、删除、修改操作: 34 @Test 35 public void test1(){ 36 Map map = new HashMap(); 37 map.put("AA",123); 38 map.put("BB",24); 39 map.put("CC",24); 40 map.put("AA",12);//体现的是修改操作 41 map.put("EE",3); 42 System.out.println(map);//{AA=12, BB=24, CC=24, EE=3} 43 44 Map map1 = new HashMap(); 45 map1.put("FF",55); 46 map1.put("BB",33); 47 map.putAll(map1);//map1中的 "BB" 的value替换了map中的 "BB" 的value 48 System.out.println(map);//{AA=12, BB=33, CC=24, EE=3, FF=55} 49 50 //移除 51 Object bb = map.remove("BB"); 52 System.out.println(bb);//33 53 System.out.println(map);//{AA=12, CC=24, EE=3, FF=55} 54 55 //清除 56 map1.clear(); 57 System.out.println(map1.size());//0 58 59 60 } 61 //元素查询的操作 62 @Test 63 public void test2(){ 64 Map map = new HashMap(); 65 map.put("AA",123); 66 map.put("BB",24); 67 map.put("CC",24); 68 map.put("AA",12);//体现的是修改操作 69 map.put("EE",3); 70 System.out.println(map);//{AA=12, BB=24, CC=24, EE=3} 71 72 // System.out.println(map.get("AA"));//12 73 System.out.println(map.get("GG"));//null 74 75 System.out.println(map.containsKey("GG"));//false 76 System.out.println(map.containsValue(123));//false 77 78 map.clear();//把里面的数据清除,但new的对象仍然存在 79 System.out.println(map.isEmpty());//true 80 81 } 82 83 //元视图操作的方法 84 /* 85 * Set keySet():返回所有key构成的Set集合 86 * Collection values():返回所有value构成的Collection集合 87 * Set entrySet():返回所有key-value对构成的Set集合 88 */ 89 @Test 90 public void test3(){ 91 Map map = new HashMap(); 92 map.put("AA",123); 93 map.put("BB",24); 94 map.put("CC",24); 95 map.put("AA",12);//体现的是修改操作 96 map.put("EE",3); 97 98 //遍历所有的key集: 99 // Set set1 = map.keySet(); 100 // Set set = set1; 101 // Iterator iterator = set.iterator(); 102 103 // while (iterator.hasNext()){ 104 // System.out.println(iterator.next()); 105 // } 106 // for (Object obj: set) { 107 // System.out.println(obj); 108 // } 109 110 //遍历所有的value集: 111 Collection values = map.values(); 112 Iterator iterator1 = values.iterator(); 113 while (iterator1.hasNext()){ 114 System.out.println(iterator1.next()); 115 } 116 117 //遍历键值对 118 //方式一:entrySet() 119 Set entrySet = map.entrySet();//entrySet集合中的元素都是entry 120 Iterator iterator = entrySet.iterator(); 121 while (iterator.hasNext()){ 122 Object obj = iterator.next(); 123 Map.Entry entry = (Map.Entry) obj; 124 System.out.println(entry.getKey()+"--->"+entry.getValue()); 125 } 126 System.out.println("***********************"); 127 //方式二 128 Set keySet = map.keySet(); 129 Iterator iterator2 = keySet.iterator(); 130 while (iterator2.hasNext()){ 131 Object key = iterator2.next(); 132 Object value = map.get(key); 133 System.out.println(key+"--->"+value); 134 } 135 } 136 137 138 }