真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java集合框架由什么組成的-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“Java集合框架由什么組成的”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Java集合框架由什么組成的”這篇文章吧。

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的薩嘎網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

第一部分  集合框架介紹

Java平臺(tái)提供了一個(gè)全新的集合框架?!凹峡蚣堋敝饕梢唤M用來(lái)操作對(duì)象的接口組成。不同接口描述一組不同數(shù)據(jù)類(lèi)型。

Java集合框架由什么組成的2003-11-30926010.bmp" align=absMiddle border=0>

ASPectratio="t" v:ext="edit">

Java 2集合框架圖

  • 集合接口:6個(gè)接口(短虛線表示),表示不同集合類(lèi)型,是集合框架的基礎(chǔ)。

  • 抽象類(lèi):5個(gè)抽象類(lèi)(長(zhǎng)虛線表示),對(duì)集合接口的部分實(shí)現(xiàn)??蓴U(kuò)展為自定義集合類(lèi)。

  • 實(shí)現(xiàn)類(lèi):8個(gè)實(shí)現(xiàn)類(lèi)(實(shí)線表示),對(duì)接口的具體實(shí)現(xiàn)。

在很大程度上,一旦您理解了接口,您就理解了框架。雖然您總要?jiǎng)?chuàng)建接口特定的實(shí)現(xiàn),但訪問(wèn)實(shí)際集合的方法應(yīng)該限制在接口方法的使用上;因此,允許您更改基本的數(shù)據(jù)結(jié)構(gòu)而不必改變其它代碼。

·  Collection 接口是一組允許重復(fù)的對(duì)象。

·  Set 接口繼承 Collection,但不允許重復(fù),使用自己內(nèi)部的一個(gè)排列機(jī)制。

·  List 接口繼承 Collection,允許重復(fù),以元素安插的次序來(lái)放置元素,不會(huì)重新排列。

·  Map接口是一組成對(duì)的鍵-值對(duì)象,即所持有的是key-value pairs。Map中不能有重復(fù)的key。擁有自己的內(nèi)部排列機(jī)制。

·  容器中的元素類(lèi)型都為object。從容器取得元素時(shí),必須把它轉(zhuǎn)換成原來(lái)的類(lèi)型。

Java集合框架由什么組成的

Java 2簡(jiǎn)化集合框架圖

第二部分  集合接口

1.Collection 接口

用于表示任何對(duì)象或元素組。想要盡可能以常規(guī)方式處理一組元素時(shí),就使用這一接口。

Java集合框架由什么組成的

(1) 單元素添加、刪除操作:

boolean add(Object o):將對(duì)象添加給集合

boolean remove(Object o): 如果集合中有與o相匹配的對(duì)象,則刪除對(duì)象o

(2) 查詢(xún)操作:

int size() :返回當(dāng)前集合中元素的數(shù)量

boolean isEmpty() :判斷集合中是否有任何元素

boolean contains(Object o) :查找集合中是否含有對(duì)象o

Iterator iterator() :返回一個(gè)迭代器,用來(lái)訪問(wèn)集合中的各個(gè)元素

(3) 組操作 :作用于元素組或整個(gè)集合

boolean containsAll(Collection c): 查找集合中是否含有集合c 中所有元素

boolean addAll(Collection c) : 將集合c 中所有元素添加給該集合

void clear(): 刪除集合中所有元素

void removeAll(Collection c) : 從集合中刪除集合c 中的所有元素

void retainAll(Collection c) : 從集合中刪除集合c 中不包含的元素

(4) Collection轉(zhuǎn)換為Object數(shù)組 :

Object[] toArray() :返回一個(gè)內(nèi)含集合所有元素的array

Object[] toArray(Object[] a) :返回一個(gè)內(nèi)含集合所有元素的array。運(yùn)行期返回的array和參數(shù)a的型別相同,需要轉(zhuǎn)換為正確型別。

此外,您還可以把集合轉(zhuǎn)換成其它任何其它的對(duì)象數(shù)組。但是,您不能直接把集合轉(zhuǎn)換成基本數(shù)據(jù)類(lèi)型的數(shù)組,因?yàn)榧媳仨毘钟袑?duì)象。

斜體接口方法是可選的。因?yàn)橐粋€(gè)接口實(shí)現(xiàn)必須實(shí)現(xiàn)所有接口方法,調(diào)用程序就需要一種途徑來(lái)知道一個(gè)可選的方法是不是不受支持。如果調(diào)用一種可選方法時(shí),一個(gè) UnsupportedOperationException 被拋出,則操作失敗,因?yàn)榉椒ú皇苤С帧4水惓n?lèi)繼承 RuntimeException 類(lèi),避免了將所有集合操作放入 try-catch 塊?!?/p>

Collection不提供get()方法。如果要遍歷Collectin中的元素,就必須用Iterator。

1.1.AbstractCollection 抽象類(lèi)

AbstractCollection 類(lèi)提供具體“集合框架”類(lèi)的基本功能。雖然您可以自行實(shí)現(xiàn) Collection 接口的所有方法,但是,除了iterator()size()方法在恰當(dāng)?shù)淖宇?lèi)中實(shí)現(xiàn)以外,其它所有方法都由 AbstractCollection 類(lèi)來(lái)提供實(shí)現(xiàn)。如果子類(lèi)不覆蓋某些方法,可選的如add()之類(lèi)的方法將拋出異常。

1.2.Iterator 接口

Collection 接口的iterator()方法返回一個(gè) Iterator。Iterator接口方法能以迭代方式逐個(gè)訪問(wèn)集合中各個(gè)元素,并安全的從Collection 中除去適當(dāng)?shù)脑亍?/p>

Java集合框架由什么組成的

(1) boolean hasNext(): 判斷是否存在另一個(gè)可訪問(wèn)的元素

Object next(): 返回要訪問(wèn)的下一個(gè)元素。如果到達(dá)集合結(jié)尾,則拋出NoSuchElementException異常。

(2) void  remove(): 刪除上次訪問(wèn)返回的對(duì)象。本方法必須緊跟在一個(gè)元素的訪問(wèn)后執(zhí)行。如果上次訪問(wèn)后集合已被修改,方法將拋出IllegalStateException。

『Iterator中刪除操作對(duì)底層Collection也有影響?!?/p>

迭代器是 故障快速修復(fù)fail-fast的。這意味著,當(dāng)另一個(gè)線程修改底層集合的時(shí)候,如果您正在用 Iterator 遍歷集合,那么,Iterator就會(huì)拋出 ConcurrentModificationException (另一種 RuntimeException異常)異常并立刻失敗。

2.List接口

List 接口繼承了 Collection 接口以定義一個(gè)允許重復(fù)項(xiàng)的有序集合。該接口不但能夠?qū)α斜淼囊徊糠诌M(jìn)行處理,還添加了面向位置的操作。

Java集合框架由什么組成的

(1)  面向位置的操作包括插入某個(gè)元素或 Collection 的功能,還包括獲取、除去或更改元素的功能。在 List 中搜索元素可以從列表的頭部或尾部開(kāi)始,如果找到元素,還將報(bào)告元素所在的位置 :

void add(int index, Object element): 在指定位置index上添加元素element

boolean addAll(int index, Collection c): 將集合c的所有元素添加到指定位置index

Object get(int index): 返回List中指定位置的元素

int indexOf(Object o): 返回第一個(gè)出現(xiàn)元素o的位置,否則返回-1

int lastIndexOf(Object o) :返回最后一個(gè)出現(xiàn)元素o的位置,否則返回-1

Object remove(int index) :刪除指定位置上的元素

Object set(int index, Object element) :用元素element取代位置index上的元素,并且返回舊的元素

(2) List 接口不但以位置序列迭代的遍歷整個(gè)列表,還能處理集合的子集:

ListIterator listIterator() : 返回一個(gè)列表迭代器,用來(lái)訪問(wèn)列表中的元素

ListIterator listIterator(int index) : 返回一個(gè)列表迭代器,用來(lái)從指定位置index開(kāi)始訪問(wèn)列表中的元素

List subList(int fromIndex, int toIndex) :返回從指定位置fromIndex(包含)到toIndex(不包含)范圍中各個(gè)元素的列表視圖

『對(duì)子列表的更改(如 add()、remove()set() 調(diào)用)對(duì)底層 List 也有影響?!?/p>

2.1.ListIterator接口

ListIterator 接口繼承 Iterator 接口以支持添加或更改底層集合中的元素,還支持雙向訪問(wèn)。ListIterator沒(méi)有當(dāng)前位置,光標(biāo)位于調(diào)用previousnext方法返回的值之間。一個(gè)長(zhǎng)度為n的列表,有n+1個(gè)有效索引值:

Java集合框架由什么組成的

Java集合框架由什么組成的

(1) void add(Object o): 將對(duì)象o添加到當(dāng)前位置的前面

void set(Object o): 用對(duì)象o替代nextprevious方法訪問(wèn)的上一個(gè)元素。如果上次調(diào)用后列表結(jié)構(gòu)被修改了,那么將拋出IllegalStateException異常。

(2)  boolean hasPrevious(): 判斷向后迭代時(shí)是否有元素可訪問(wèn)

Object previous():返回上一個(gè)對(duì)象

int nextIndex(): 返回下次調(diào)用next方法時(shí)將返回的元素的索引

int previousIndex(): 返回下次調(diào)用previous方法時(shí)將返回的元素的索引

『正常情況下,不用ListIterator改變某次遍歷集合元素的方向 — 向前或者向后。雖然在技術(shù)上可以實(shí)現(xiàn),但previous() 后立刻調(diào)用next(),返回的是同一個(gè)元素。把調(diào)用 next()和previous()的順序顛倒一下,結(jié)果相同?!?/code>

『我們還需要稍微再解釋一下 add() 操作。添加一個(gè)元素會(huì)導(dǎo)致新元素立刻被添加到隱式光標(biāo)的前面。因此,添加元素后調(diào)用 previous() 會(huì)返回新元素,而調(diào)用 next() 則不起作用,返回添加操作之前的下一個(gè)元素?!?/code>undefined

以上是“Java集合框架由什么組成的”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!


文章名稱(chēng):Java集合框架由什么組成的-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://weahome.cn/article/ddgpsp.html

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部