![第三部分java應(yīng)用程序設(shè)計(jì)類集map接口_第1頁(yè)](http://file4.renrendoc.com/view/17073a2c4f0fc910bdbb878cd2568d2b/17073a2c4f0fc910bdbb878cd2568d2b1.gif)
![第三部分java應(yīng)用程序設(shè)計(jì)類集map接口_第2頁(yè)](http://file4.renrendoc.com/view/17073a2c4f0fc910bdbb878cd2568d2b/17073a2c4f0fc910bdbb878cd2568d2b2.gif)
![第三部分java應(yīng)用程序設(shè)計(jì)類集map接口_第3頁(yè)](http://file4.renrendoc.com/view/17073a2c4f0fc910bdbb878cd2568d2b/17073a2c4f0fc910bdbb878cd2568d2b3.gif)
![第三部分java應(yīng)用程序設(shè)計(jì)類集map接口_第4頁(yè)](http://file4.renrendoc.com/view/17073a2c4f0fc910bdbb878cd2568d2b/17073a2c4f0fc910bdbb878cd2568d2b4.gif)
![第三部分java應(yīng)用程序設(shè)計(jì)類集map接口_第5頁(yè)](http://file4.renrendoc.com/view/17073a2c4f0fc910bdbb878cd2568d2b/17073a2c4f0fc910bdbb878cd2568d2b5.gif)
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 嚴(yán)守黨的生活紀(jì)律維護(hù)黨員良好形象黨員教育培訓(xùn)課件
- 作用方法局麻作用吸收作用表面麻醉浸潤(rùn)麻醉麻醉蛛網(wǎng)膜下腔麻醉硬膜外麻醉講解
- 醫(yī)學(xué)儀器外貿(mào)購(gòu)銷合同范本年
- 土地房屋轉(zhuǎn)讓簡(jiǎn)單合同范本
- 服裝設(shè)計(jì)與生產(chǎn)加工合同
- 項(xiàng)目承包服務(wù)合同范本
- 財(cái)務(wù)管理系統(tǒng)開發(fā)合作合同
- 店面房出租經(jīng)營(yíng)合同書
- 2025小轎車分期購(gòu)車合同
- 2025勞動(dòng)合同終止聲明書
- AI智慧物流園區(qū)整體建設(shè)方案
- 無(wú)痛人工流產(chǎn)術(shù)課件
- 心力衰竭業(yè)務(wù)學(xué)習(xí)護(hù)理課件
- 《項(xiàng)脊軒志》公開課課件【一等獎(jiǎng)】
- 美發(fā)學(xué)徒助理職業(yè)規(guī)劃書
- 法醫(yī)病理學(xué)課件
- 職代會(huì)提案征集表
- 介紹uppc技術(shù)特點(diǎn)
- 《諫逐客書》理解性默寫(帶答案)最詳細(xì)
- 《黑駿馬》讀書筆記思維導(dǎo)圖
- 2023年物理會(huì)考真題貴州省普通高中學(xué)業(yè)水平考試試卷
評(píng)論
0/150
提交評(píng)論