packagecn.sasa.demo3;importjava.util.HashMap;importjava.util.Iterator;importjava.util.LinkedHashMap;importjava.util.Map;importjava.util.Set;public classMapDemo {public static voidmain(String[] args) {/*** Map集合 类似于 C#中的 Dictionary,存的是键值对集合,键不能重复
*
* Map接口的常用方法:
* Map接口的实现类:HashMap*/Map map = new HashMap();//添加
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 inSet =map.keySet();
Iterator 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 {
Set> mset =map.entrySet();
Iterator> itmap =mset.iterator();while(itmap.hasNext()) {
Map.Entry mapent =itmap.next();
System.out.println(mapent.getKey()+ "====" +mapent.getValue() );
}
System.out.println("=========================");for(Map.Entryentry : map.entrySet()) {
System.out.println(entry.getKey()+ "----" +entry.getValue());
}//=================LinkedHashMap================//LinkedHashMap:保证迭代的顺序
LinkedHashMap link = new LinkedHashMap();
link.put("sa", "class1");
link.put("zz", "class2");
link.put("sxxa", "class3");
link.put("sacc", "class4");
System.out.println(link);
}
}