5.1Map接口Collection查找对象的依据是对象本身或对象副本,List依据存储位置,而Map存储的是“键/值”对,可以根据“键”查找“值”。同一个“键”只能存储一个“值”,重复存储会覆盖以前的“值”。“键”和“值”本身都可以是任意类型。5.1Map接口常用方法:Objectput(Objectkey,Objectvalue)Objectremove(Objectkey)Objectget(Objectkey)booleancontainsKey(Objectkey)booleancontainsValue(Objectvalue)SetKkeySet()CollectionVvalues()5.2HashMapjava.util.HashMap实现了Map接口,使用HashSet存放键值,效率较高。存入HashMap的键类对象必须定义hashcode()和equals()方法。5.2HashMappublicstaticvoidmain(String[]args){ MapString,Stringmap=new HashMapString,String(); map.put(0221004090240,宋江); map.put(0221004090140,李逵); map.put(0221004090140,李鬼); SetStringset=map.keySet(); for(Stringstr:set){ System.out.println(map.get(str)); } System.out.println(map.get(null));}李鬼宋江null5.3LinkedHashMap略5.4TreeMapTreeMap实现了SortedMap接口。SortedMap提供相关的方法让你有序的取出对应位置的对象,如firstKey()、lastKey()等方法TreeMap是JavaSE中唯一实现SortedMap接口的类容器容器Java2容器类类库的用途是“保存对象”,它分为两类:?Collection:一组独立的元素,通常这些元素都服从某种规则。如List必须保持元素特定的顺序,而Set不能有重复元素。?Map:一组成对的“键值对”对象,即其元素是成对的对象。1容器分类2.1Collection接口publicinterfaceCollectionEextendsIterableE{ booleanadd(Ee); booleanremove(Objecto); booleancontains(Objecto); booleanisEmpty(); intsize(); Object[]toArray(); IteratorEiterator(); ……}并未直接定义获取元素的方法迭代器(游标),特点:单向前进2.2Iterator接口publicinterfaceIteratorE{ booleanhasNext();//有没有下一个元素 Enext();//获得下一个元素 voidremove(); //删除最近返回的元素}2.2Iterator接口通过迭代器遍历元素CollectionStringcoll=……Stringstr=null;IteratorStringit=coll.iterator();while(it.hasNext()){ str=it.next(); //越过并返回 System.out.println(str);}IteratorStringit=coll.iterator();for(Stringstr:it){ System.out.println(str); }3.1List接口List继承于Collection,增加了面向位置(有序)的元素操作方法。publicinterfaceListEextendsCollectionE{ voidadd(intindex,Eelement); Eremove(intindex); Eget(intindex); Eset(intindex,Eelement); intindexOf(Objecto); intlastIndexOf(Objecto); ……}3.2ArrayLis