大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java編程中l(wèi)ist集合的詳解

Java編程中l(wèi)ist集合的詳解

更新時間:2020-07-06 16:33:53 來源:動力節(jié)點 瀏覽2196次

List接口

該接口定義的元素是有序的且可重復的。相當于數(shù)學里面的數(shù)列,有序可重復

booleanaddAll(intindex,Collection<?extendsE>c);將指定集合中所有元素,插入至本集合第index個元素之后defaultvoidreplaceAll(UnaryOperatoroperator);替換集合中每一個元素值defaultvoidsort(Comparator<?superE>c);給集合中的元素進行排序Eget(intindex);獲取集合中第index個元素Eset(intindex,Eelement);將集合中第index個元素替換成指定元素voidadd(intindex,Eelement);向集合中第index個位置添加一個元素Eremove(intindex);移除集合中第index個元素intindexOf(Objecto);得到指定元素在集合中的位置(第一次出現(xiàn))intlastIndexOf(Objecto);得到指定元素在集合中的位置(最后一次出現(xiàn))ListIteratorlistIterator();返回ListIteratorListIteratorlistIterator(intindex);返回ListIterator,并設置當前位置ListsubList(intfromIndex,inttoIndex);截取List,從fromIndex到toIndex

List子類

AbstractList抽象類

該類實現(xiàn)了基本的List集合功能,如果實現(xiàn)的是只讀的List集合,繼承自該抽象類的子類只需要實現(xiàn)get(intindex)和size()兩個方法,如果是可操作的List集合,則必須重寫add和set方法,否則執(zhí)行add和set時會拋出UnsupportedOperationException異常

AbstractList抽象類中的迭代器通過get(intindex)訪問元素,通過remove(Objecto)刪除元素。

AbstractList抽象類包含了一個SubList子類,該子類通過包裝一個AbstractList抽象類對象實現(xiàn)元素的添加、刪除等功能。

該抽象類主要實現(xiàn)了如下方法:

booleanadd(Ee);添加元素e,內(nèi)部調(diào)用add(intindex,Eelement)實現(xiàn)intindexOf(Objecto);得到指定元素第一次在集合中的位置,內(nèi)部通過List迭代器實現(xiàn)intlastIndexOf(Objecto);得到指定元素在集合中的位置(最后一次出現(xiàn)),內(nèi)部List迭代器實現(xiàn),注意此處是從后往前迭代voidclear();清空List集合中的元素,內(nèi)部通過List迭代器實現(xiàn)booleanaddAll(intindex,Collection<?extendsE>c);插入集合c中所有元素,內(nèi)部調(diào)用add(intindex,Eelement)實現(xiàn)Iteratoriterator();返回一個迭代器對象,AbstractList抽象類內(nèi)部實現(xiàn)了一個迭代器ListIteratorlistIterator();返回一個List迭代器對象,AbstractList抽象類內(nèi)部實現(xiàn)了一個List迭代器booleanequals(Objecto);重寫Object的equals方法,內(nèi)部先判斷是否同一個對象,是返回true,否則判斷o是否是List對象,不是返回false,是的話迭代比較兩個集合中每一個元素是否一致,都一致返回trueinthashCode();內(nèi)部迭代集合中每一個元素計算出hashcode值ListsubList(intfromIndex,inttoIndex);得到List集合的子集合,內(nèi)部通過構造AbstractList內(nèi)部的SubList實現(xiàn)

ArrayList

ArrayList繼承自AbstractList實現(xiàn)了List中所有方法,該集合可以插入任何元素包括null元素。

ArrayList內(nèi)部使用數(shù)組保存元素,他的size、isEmpty、get、set、add等操作都是常數(shù)時間。在獲取元素時會比LinkedList更有優(yōu)勢。

Arraylist有一個初始的大小,該大小會隨著元素的增加而增長。

ArrayList不是線程安全的,在多線程環(huán)境下使用時需要注意,我們可以通過Collections.synchronizedList(newArrayList(…));操作得到一個線程安全的ArrayList

ArrayList中的迭代器在List集合結(jié)果變化后,我們調(diào)用迭代器中的方法時會快速拋出ConcurrentModificationException異常通知程序,以免造成損失。

ArrayList的擴展策略:

在初始集合為空時,加入元素時會初始化Math.max(DEFAULT_CAPACITY,minCapacity)個空間,即取插入元素個數(shù)和DEFAULT_CAPACITY中比較大的那個數(shù)

集合非空時插入元素,如果空間不夠時,則取原集合大小擴展2倍和最小需求大小中較大的那個進行擴展

ArrayList重寫了Iterator和ListIterator,內(nèi)部直接通過遍歷數(shù)組實現(xiàn)

ArrayList重寫了SubList類,該類直接通過訪問數(shù)組實現(xiàn)

ArrayList主要包括以下屬性:

transientObject[]elementData;該對象數(shù)組用于存放集合中的元素intsize;該屬性用于保存集合的大小transientintmodCount;記錄ArrayList修改的次數(shù),在集合迭代器中會使用該數(shù)字判斷迭代時集合是否修改過

ArrayList主要包含以下構造函數(shù):ArrayList(intinitialCapacity);構造初始大小為initialCapacity的集合對象ArrayList();構造一個空的數(shù)組元素ArrayList(Collection<?extendsE>c);使用傳入集合c構造一個集合對象

ArrayList主要包括以下函數(shù):

voidtrimToSize();將集合中數(shù)組大小恢復至當前集合大小,該操作可以壓縮集合使用空間voidensureCapacity(intminCapacity);通過傳入的minCapacity判斷集合是否需要擴展,需要的話則擴展數(shù)組大小,已足夠存放元素intindexOf(Objecto);得到指定元素第一次在集合中的位置,重寫了AbstractList類的方法,內(nèi)部直接遍歷元素數(shù)組實現(xiàn)intlastIndexOf(Objecto);同上Objectclone();重寫了clone方法,并且將元素數(shù)組復制一份出來,且將modCount致0,注意此處數(shù)組中元素并沒有clone,也就是說克隆后的集合和元集合使用同一份具體元素Object[]toArray();直接返回本集合中的數(shù)組Eget(intindex);直接訪問數(shù)組Eset(intindex,Eelement);直接設置數(shù)組元素值booleanadd(Ee);直接操作數(shù)組,想數(shù)組添加一個元素Eremove(intindex);直接操作數(shù)組booleanremove(Objecto);一樣遍歷數(shù)組,注意該操作會導致數(shù)組移動voidclear();遍歷將數(shù)組致空,同時設置size大小為0booleanaddAll(Collection<?extendsE>c);通過數(shù)組直接添加voidsort(Comparator<?superE>c);實現(xiàn)集合中元素排序功能,接收一個Comparator用以比較集合中元素的大小

Java編程中l(wèi)ist集合的詳解

Java技術內(nèi)容

Java中List集合:http://www.dabaquan.cn/tutorial_java_advance/637.html

以上就是動力節(jié)點java培訓機構的小編針對“Java編程中l(wèi)ist集合的詳解”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久综合久久网 | 国产uv1区二区三区 国产va | 天天干天天色天天 | 久久久久久久久久久96av | 最新亚洲精品国自产在线 | 成年人国产网站 | 亚州精品一区二区三区 | 国产精品二区在线 | 奇米四色在线观看 | 欧美成人性生活视频 | 国产高清美女一级毛片久久 | 久久精品国产99国产精品亚洲 | 一级毛片一级片 | 五月桃花网婷婷亚洲综合 | 亚洲精品亚洲人成毛片不卡 | 亚洲狼人综合干 | 国产成人综合视频 | 欧美精品毛片 | 日日综合 | 日日草夜夜操 | 婷婷四房综合激情五月性色 | 国产综合图区 | 狼人久久尹人香蕉尹人 | 香蕉视频在线免费看 | 国产毛片精品 | a毛片在线播放 | 欧美激情亚洲 | 香蕉尹人综合精品 | 欧美日韩国产一区二区三区欧 | 爱操在线视频 | 国产成人在线网站 | 亚洲日韩视频 | 久青草视频免费视频播放线路1 | 天然素人在线观看 | 久久精品是免费100 久久精品首页 | 一区二区亚洲精品 | 亚洲第一区二区快射影院 | 黄页网站 播放器 日本 | 热思思久久| 99久久国产综合精品2020 | 久久99亚洲精品久久 |