java中的集合及其遍歷_第1頁(yè)
java中的集合及其遍歷_第2頁(yè)
java中的集合及其遍歷_第3頁(yè)
java中的集合及其遍歷_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、一、 分類(lèi)以及遍歷(array是數(shù)組 ,不在集合框架范疇之內(nèi),一旦選定了 ,它的容量大小就不能改變了,所以通常在編程中不選用數(shù)組來(lái)存放.)java1.0/1.1 的集合類(lèi),用arraylist 代替 vector。用 hashmap 代替 hashtable。用 linkedlist 代替 stack。collection list linkedlist arraylist vector stack setmap hashtable hashmap weakhashmap (紅色的是接口)collection接口collection 是最基本的集合接口,一個(gè)collection 代表一組obj

2、ect,即 collection 的元素( elements) 。一些collection 允許相同的元素而另一些不行。一些能排序而另一些不行。java sdk 不提供直接繼承自collection 的類(lèi),java sdk 提供的類(lèi)都是繼承自collection 的 “子接口”如list 和 set。所有實(shí)現(xiàn)collection 接口的類(lèi)都必須提供兩個(gè)標(biāo)準(zhǔn)的構(gòu)造函數(shù):無(wú)參數(shù)的構(gòu)造函數(shù)用于創(chuàng)建一個(gè)空的collection, 有一個(gè) collection 參數(shù)的構(gòu)造函數(shù)用于創(chuàng)建一個(gè)新的collection ,這 個(gè)新的 collection 與傳入的collection 有相同的元素。 后一個(gè)構(gòu)造

3、函數(shù)允許用戶(hù)復(fù)制一個(gè)collection 。如何遍歷collection 中的每一個(gè)元素?不論collection 的實(shí)際類(lèi)型如何,它都支持一個(gè)iterator() 的方法,該方法返回一個(gè)迭代子,使用該迭代子即可逐一訪問(wèn)collection 中每一個(gè)元素。典型的用法如下:iterator it = collection.iterator(); / 獲得一個(gè)迭代子while(it.hasnext() object obj = it.next(); / 得到下一個(gè)元素 由 collection 接口派生的兩個(gè)接口是list 和 set。集合的通用遍歷:publicstaticvoidprintel

4、ements(collection c) iterator it=c.iterator(); while(it.hasnext() system.out .println(it.next(); list list: 有順序的,元素可以重復(fù)遍歷: for 迭代排序: comparable comparator collections.sort() arraylist :底層用數(shù)組實(shí)現(xiàn)的list 特點(diǎn):查詢(xún)效率高,增刪效率低輕量級(jí)線程不安全遍歷:arraylist al=new arraylist(); al.add(winsun); al.add(weixin); al.add(mybole);

5、 for(int i=0;ial.size();i+) system.out .println(al.get(i); /for遍歷iterator it=al.iterator(); while(it.hasnext() system.out .println(it.next(); /迭代器遍歷linkedlist :底層用雙向循環(huán)鏈表實(shí)現(xiàn)的list 特點(diǎn):查詢(xún)效率低,增刪效率高vector: 底層用數(shù)組實(shí)現(xiàn)list 接口的另一個(gè)類(lèi)特點(diǎn):重量級(jí),占據(jù)更多的系統(tǒng)開(kāi)銷(xiāo)線程安全set set:無(wú)順序的,元素不可重復(fù)(值不相同)遍歷:迭代排序: sortedset hashset: 采用哈希算法來(lái)實(shí)現(xiàn)

6、set接口唯一性保證:重復(fù)對(duì)象equals方法返回為true 重復(fù)對(duì)象hashcode方法返回相同的整數(shù)不同對(duì)象哈希碼盡量保證不同(提高效率)treeset:在元素添加的同時(shí),進(jìn)行排序。也要給出排序規(guī)則唯一性保證: 根據(jù)排序規(guī)則,compareto 方法返回為0,就可以認(rèn)定兩個(gè)對(duì)象中有一個(gè)是重復(fù)對(duì)象。map 接口map :元素是鍵值對(duì)key:唯一,不可重復(fù)value:可重復(fù)遍歷:先迭代遍歷key 的集合,再根據(jù)key 得到 value hashmap :輕量級(jí)線程不安全允許 key 或者 value 是 null 遍歷:hashmap hm=new hashmap(); hm.put(one,

7、 zhangsan); hm.put(two, lisi); hm.put(three, wangwu); set entry=hm.entryset(); iterator it=entry.iterator(); while( it.hasnext() map.entry me=(map.entry)it.next(); system.out .println(me.getkey()+:+me.getvalue(); hashtable:重量級(jí)線程安全不允許 key 或者 value 是 null properties: hashtable 的子類(lèi), key 和 value 都是 stri

8、ng 排序: sortedmap,元素自動(dòng)對(duì)key 排序treemap :集合是指一個(gè)對(duì)象可以容納了多個(gè)對(duì)象(不是引用),這個(gè)集合對(duì)象主要用來(lái)管理維護(hù)一系列相似的對(duì)象。二、區(qū)別和聯(lián)系collection 和 collections的區(qū)別。collections 是個(gè) java.util 下的類(lèi),它包含有各種有關(guān)集合操作的靜態(tài)方法。collection 是個(gè) java.util 下的接口,它是各種集合結(jié)構(gòu)的父接口。arraylist和 vector 的區(qū)別。一.同步性 :vector 是線程安全的,也就是說(shuō)是同步的,而arraylist 是線程序不安全的,不是同步的二.數(shù)據(jù)增長(zhǎng) :當(dāng)需要增長(zhǎng)時(shí),vector 默認(rèn)增長(zhǎng)為原來(lái)一培,而arraylist 卻是原來(lái)的一半hashmap和 hashtable 的區(qū)別一.歷史原因 :hashtable 是基于陳舊的dictionary 類(lèi)的,hashmap 是 java 1.2 引進(jìn)的 map 接口的一個(gè)實(shí)現(xiàn)二.同步性 :hashtable 是線程安全的,也

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論