01Map提供了三种集合视图:keysetvaluesetkey-valuemappingsetpublicStringgetWeek(intnum){if(num<0||num>7){thrownewNoWeekException(num+"无对应周");String[]weeks={"","Monday"....."Sunday"};返回周数[num];}}周日(Sunday)、周一(Monday)、周二(Tuesday)、周三(Wednesday)、周四(Thursday)、周五(Friday)、周六(Saturday)java.util接口Map参数:K是此映射V的键是已知此映射的值的,V>已知的实现类:AbstractMap,Attributes,AuthProvider,ConcurrentHashMap,ConcurrentSkipListMap,EnumMap,HashMap,Hashtable,IdentityHashMap,LinkedHashMap,PrinterStateReasons,Properties,Provider,RenderingHints,SimpleBindings,TabularDataSupport,TreeMap,UIDefaults,WeakHashMap实现的接口:公共接口Map映射中不能有重java训练复杂的key,每个key只能映射到一个valueMap集合中的特点:内部存储方式为键值对形式Map中的key必须是唯一的嵌套类(内部):Map方法:putVput(Ekey,Vvalue)与对应的key和value建立映射关系,并添加映射关系。如果之前有这样的映射关系,会指向给定值替换旧值参数:key-指定关联的keyvalue-指定关联的值将抛出的错误:UnsupportedOperationException:不支持Put操作ClassCastException:不允许映射关系NullPointerException:指定的key或value为null,并且此映射不允许存储IllegalArgumentException:指定的键或值不允许存储在映射中。常用的实现类:HashMapjava.util类HashMapjava.lang.Object->java.util.AbstractMap->java.util.HashMap参数:K-是对应键V-为对应值实现接口:Serializable,Cloneable,Map已知子类:LinkedHashMap,PrinterStateReasons所以:publicclassHashMapextendsAbstractMapimplementsMap,Cloneable,Serializable02Map例子:importjava.util.HashMap;publicclassMapDemo{publicstaticvoidmain(String[]args){//创建一个地图Mapmap=newHashMap();//添加元素map.put("Monday","Monday");mpa.put(...//自己添加);map.put("周日","周日");//添加元素时,如果key相同,value会覆盖map.put("Sunday","SundayDemo");//值覆盖//获取值Stringvalue=map.get("Sunday");//如果key存在,则返回value,否则返回null,为空//删除元素Strings=map.remove("Sunday");//删除对应的键值对关系,这样Map集合中就会缺少这对键值对}}如何获取所有键Mapmap=newHashMap();map.put("Monday","Monday");map.put("Sunday","Sunday");使用keySetSetkeySet=map.keySet();for(Iteratorit=keySet.iterator();it.hasNext();){Stringkey=it.next();Stringvalue=map.get(key);System.out.println(key+":"+value);}可以使用foreach循环for(Stringkey:keySet){System.out.println(key+"="+map.get(key));}entrySet>entrySet()是用于返回这个mapping中包含的映射关系Set的视图,map集合中的映射关系存储在set集合中映射关系:指key和value之间的关系,数据类型Map.Entry的类型(内部)关系Set>entrySet=map.entrySet();Iterator