第三部分java應(yīng)用程序設(shè)計(jì)類集map接口_第1頁(yè)
第三部分java應(yīng)用程序設(shè)計(jì)類集map接口_第2頁(yè)
第三部分java應(yīng)用程序設(shè)計(jì)類集map接口_第3頁(yè)
第三部分java應(yīng)用程序設(shè)計(jì)類集map接口_第4頁(yè)
第三部分java應(yīng)用程序設(shè)計(jì)類集map接口_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JAVA應(yīng)用開發(fā)詳解第13章:Java類集

——Map接口MLDN軟件教學(xué)研發(fā)部本章目標(biāo)掌握Map接口與Collection接口的不同掌握Map與Map.Entry接口的關(guān)系掌握Map接口的常用子類:HashMap、Hashtable、TreeMap、WeakHashMap掌握HashMap與Hastable的區(qū)別Map接口之前所講解的Collection、Set、List接口都屬于單值的操作,即:每次只能操作一個(gè)對(duì)象,而Map與它們不同的是,每次操作的是一對(duì)對(duì)象,即二元偶對(duì)象,Map中的每個(gè)元素都使用key

value的形式存儲(chǔ)在集合之中,此接口定義如下:publicinterfaceMap<K,V>Map接口中的方法No.方法或類類型描述1publicvoidclear()普通清空Map集合2publicbooleancontainsKey(Objectkey)普通判斷指定的key是否存在3publicbooleancontainsValue(Objectvalue)普通判斷指定的value是否存在4publicSet<Map.Entry<K,V>>entrySet()普通將Map對(duì)象變?yōu)镾et集合5publicbooleanequals(Objecto)普通對(duì)象比較6publicVget(Objectkey)普通根據(jù)key取得value7publicinthashCode()普通返回哈希碼8publicbooleanisEmpty()普通判斷集合是否為空9publicSet<K>keySet()普通取得所有的key10publicVput(Kkey,Vvalue)普通向集合中加入元素11publicvoidputAll(Map<?extendsK,?extendsV>t)普通將一個(gè)Map集合中的內(nèi)容加入到另一個(gè)Map12publicVremove(Objectkey)普通根據(jù)key刪除value13publicintsize()普通取出集合的長(zhǎng)度14publicCollection<V>values()普通取出全部的valueMap.Entry接口Map.Entry是Map中內(nèi)部定義的一個(gè)接口,專門用來(lái)保存key

value的內(nèi)容。Map.Entry接口定義:publicstaticinterfaceMap.Entry<K,V>Map.Entry接口的常用方法No.方法或類類型描述1publicbooleanequals(Objecto)普通對(duì)象比較2publicKgetKey()普通取得key3publicVgetValue()普通取得value4publicinthashCode()普通返回哈希碼5publicVsetValue(Vvalue)普通設(shè)置value的值Map與Map.EntryMap接口的常用子類Map接口的常用子類:HashMap:無(wú)序存放的,是新的操作類,key不允許重復(fù)。Hashtable:無(wú)序存放的,是舊的操作類,key不允許重復(fù)。TreeMap:可以排序的Map集合,按集合中的key排序,key不允許重復(fù)。WeakHashMap:弱引用的Map集合,當(dāng)集合中的某些內(nèi)容不再使用時(shí),可以清除掉無(wú)用的數(shù)據(jù),可以使用gc進(jìn)行回收。IdentityHashMap:key可以重復(fù)的Map集合。新的子類:HashMapHashMap本身是Map的子類,直接使用此類為Map接口實(shí)例化即可。HashMap類的定義如下:publicclassHashMap<K,V>extendsAbstractMap<K,V>implementsMap<K,V>,Cloneable,Serializable實(shí)例操作一:向集合中增加和取出內(nèi)容packageorg.lxh.demo13.mapdemo;importjava.util.HashMap;importjava.util.Map;public

classHashMapDemo01{

public

static

voidmain(String[]args){ Map<String,String>map=null; //聲明Map對(duì)象,

map=newHashMap<String,String>(); //key和value是String類

map.put("mldn",""); //增加內(nèi)容

map.put("zhinangtuan",""); //增加內(nèi)容

map.put("mldnjava",""); //增加內(nèi)容

Stringval=map.get("mldn"); //根據(jù)key求出value System.out.println("取出的內(nèi)容是:"+val); //輸出Map,調(diào)用toString() }}實(shí)例操作二:判斷指定的key或value是否存在packageorg.lxh.demo13.mapdemo;importjava.util.HashMap;importjava.util.Map;public

classHashMapDemo02{

public

static

voidmain(String[]args){ Map<String,String>map=null; //聲明Map對(duì)象,

map=newHashMap<String,String>(); //key和value是String類

map.put("mldn",""); //增加內(nèi)容

map.put("zhinangtuan",""); //增加內(nèi)容

map.put("mldnjava",""); //增加內(nèi)容

if(map.containsKey("mldn")){ //查找指定的key是否存在

System.out.println("搜索的key存在!"); }else{ System.out.println("搜索的key不存在!"); }

if(map.containsValue("")){ //查找指定的value是否存在

System.out.println("搜索的value存在!"); }else{ System.out.println("搜索的value不存在!"); } }}實(shí)例操作三:輸出全部的keypackageorg.lxh.demo13.mapdemo;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importjava.util.Set;public

classHashMapDemo03{

public

static

voidmain(String[]args){ Map<String,String>map=null; //聲明Map對(duì)象,

map=newHashMap<String,String>(); //key和value是String類

map.put("mldn",""); //增加內(nèi)容

map.put("zhinangtuan",""); //增加內(nèi)容

map.put("mldnjava",""); //增加內(nèi)容

Set<String>keys=map.keySet(); //得到全部的key Iterator<String>iter=keys.iterator(); //實(shí)例化Iterator System.out.print("全部的key:"); //輸出信息

while(iter.hasNext()){ //迭代輸出全部的key Stringstr=iter.next(); //取出集合的key System.out.print(str+"、"); //輸出內(nèi)容

} }}實(shí)例操作四:輸出全部的valuepackageorg.lxh.demo13.mapdemo;importjava.util.Collection;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;public

classHashMapDemo04{

public

static

voidmain(String[]args){ Map<String,String>map=null; //聲明Map對(duì)象,

map=newHashMap<String,String>(); //key和value是String類

map.put("mldn",""); //增加內(nèi)容

map.put("zhinangtuan",""); //增加內(nèi)容

map.put("mldnjava",""); //增加內(nèi)容

Collection<String>values=map.values(); //得到全部的value Iterator<String>iter=values.iterator(); //實(shí)例化Iterator System.out.print("全部的value:"); //輸出信息

while(iter.hasNext()){ //迭代輸出

Stringstr=iter.next(); //取出value System.out.print(str+"、"); //輸出內(nèi)容

} }}舊的子類:Hashtablepublic

classHashtableDemo01{

public

static

voidmain(String[]args){ Map<String,String>map=null; //聲明Map對(duì)象,

map=newHashtable<String,String>(); //key和value是String類

map.put("mldn",""); //增加內(nèi)容

map.put("zhinangtuan",""); //增加內(nèi)容

map.put("mldnjava",""); //增加內(nèi)容

Set<String>keys=map.keySet(); //得到全部的key Iterator<String>iter1=keys.iterator(); //實(shí)例化Iterator System.out.print("全部的key:"); //輸出信息

while(iter1.hasNext()){ //迭代輸出全部的key Stringstr=iter1.next(); //取出內(nèi)容

System.out.print(str+"、"); //輸出內(nèi)容

} Collection<String>values=map.values(); //得到全部的value Iterator<String>iter2=values.iterator(); //實(shí)例化Iterator System.out.print("\n全部的value:"); //輸出信息

while(iter2.hasNext()){ //迭代輸出全部的value Stringstr=iter2.next(); //取出內(nèi)容

System.out.print(str+"、"); //輸出內(nèi)容

} }}HashMap與Hashtable的區(qū)別No.比較點(diǎn)HashMapHashtable1推出時(shí)間JDK1.2之后推出的,屬于新的操作類JDK1.0時(shí)推出,屬于舊的操作類2性能采用異步處理方式,性能更高采用同步處理方式,性能較低3線程安全屬于非線程安全的操作類屬于線程安全的操作類4設(shè)置空值允許設(shè)置null值不能設(shè)置null,如果設(shè)置則出現(xiàn)NullPointerException異常排序的子類:TreeMappackageorg.lxh.demo13.mapdemo;importjava.util.Iterator;importjava.util.Map;importjava.util.Set;importjava.util.TreeMap;public

classTreeMapDemo01{

public

static

voidmain(String[]args){ Map<String,String>map=null; map=newTreeMap<String,String>(); //實(shí)例化Map對(duì)象

map.put("A、mldn",""); //增加內(nèi)容

map.put("C、zhinangtuan","");//增加內(nèi)容

map.put("B、mldnjava",""); //增加內(nèi)容

Set<String>keys=map.keySet(); //得到全部的key Iterator<String>iter=keys.iterator(); //實(shí)例化Iterator

while(iter.hasNext()){ //迭代輸出

Stringstr=iter.next(); //取出key System.out.println(str+"-->"+map.get(str)); //取出key對(duì)應(yīng)的內(nèi)容

} }}弱引用類:WeakHashMap之前所講解的Map

子類中的數(shù)據(jù)都是使用強(qiáng)引用保存的,即里面的內(nèi)容不管是否使用都始終在集合中保留,如果希望集合可以自動(dòng)清理暫時(shí)不用的數(shù)據(jù)就可以使用WeakHashMap類。WeakHashMap的定義如下:publicclassWeakHashMap<K,V>extendsAbstractMap<K,V>implementsMap<K,V>觀察弱引用的Map集合packageorg.lxh.demo13.mapdemo;importjava.util.Map;importjava.util.WeakHashMap;public

cla

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論