package cn.sasa.demo3; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; public class MapDemo { public static void main(String[] args) { /** * Map集合 类似于 C#中的 Dictionary,存的是键值对集合,键不能重复 * * Map接口的常用方法: * Map接口的实现类:HashMap */ Map<Integer,String> map = new HashMap<Integer, String>(); //添加 map.put(1, "a"); var preObj = map.put(1, "b");//重复的键保存的是后面那个,返回被替换的值 var preObj1 = map.put(3, "a"); map.put(4, "c"); map.put(5, "u"); map.put(6, "t"); map.put(7, "e"); System.out.println(preObj); //a System.out.println(preObj1); //null System.out.println(map); //{1=b, 3=a, 4=c, 5=u, 6=t, 7=e} //取值 String mapStr1 = map.get(4); //String mapStr1 = map.get(5); //如果不存在,返回null System.out.println(mapStr1); //c //移除 返回被移除的对象 String maprev = map.remove(3); System.out.println(maprev); //a System.out.println("========================="); //遍历 //1、调用keySet,将所有的键存到Set集合中 //2、遍历Set集合 Set<Integer> inSet = map.keySet(); Iterator<Integer> it = inSet.iterator(); while(it.hasNext()) { Integer key = it.next(); String val = map.get(key); System.out.println(val); } System.out.println("========================="); for(var key : inSet) { System.out.println(map.get(key)); } System.out.println("========================="); //entrySet获取的是Entry对象的Set集合, 映射关系对象 //Entry是Map类中内部定义的一个接口 , 调用方式是Map.Entry //interface Entry<K, V> { Set<Map.Entry<Integer, String>> mset = map.entrySet(); Iterator<Map.Entry<Integer, String>> itmap = mset.iterator(); while(itmap.hasNext()) { Map.Entry<Integer, String> mapent = itmap.next(); System.out.println(mapent.getKey() + "====" + mapent.getValue() ); } System.out.println("========================="); for(Map.Entry<Integer, String> entry : map.entrySet()) { System.out.println(entry.getKey() + "----" + entry.getValue()); } //=================LinkedHashMap================ //LinkedHashMap:保证迭代的顺序 LinkedHashMap<String, String> link = new LinkedHashMap<String, String>(); link.put("sa", "class1"); link.put("zz", "class2"); link.put("sxxa", "class3"); link.put("sacc", "class4"); System.out.println(link); } }