摘要:正文工具類是包中的一個(gè)工具類,主要功能是對(duì)集合及其元素進(jìn)行操作。這篇文章算是對(duì)官方文檔的總結(jié)和歸納,也加以自己的思考,也是面試題之一,希望自己能在之后不會(huì)再吃這道題的虧。
????本文首發(fā)于cartoon的博客
????轉(zhuǎn)載請(qǐng)注明出處:https://cartoonyu.github.io/c...
????推薦一篇不錯(cuò)的博文https://gitee.com/SnailClimb/JavaGuide/blob/master/docs/java/Basis/Arrays,CollectionsCommonMethods.md
就在剛剛面試,被問(wèn)到了Collections工具類有什么功能,我懵了,很少涉及到Collections這個(gè)工具類,只答了對(duì)集合元素的操作以及將線程不同步的集合類轉(zhuǎn)換成線程同步,下定決心復(fù)盤一下。
正文Collections工具類是java.util包中的一個(gè)工具類,主要功能是對(duì)集合及其元素進(jìn)行操作。雖然被問(wèn)的有點(diǎn)懵,在結(jié)束查看官方文檔時(shí)發(fā)現(xiàn)其實(shí)可以分成以下幾大部分
特征
方法名為synchronizedXxx
適用范圍
List
Collection
Set
Map
缺點(diǎn)
每次讀寫都要加鎖,鎖的層級(jí)為對(duì)象,不利于多線程的同時(shí)操作
在使用Iterator的遍歷時(shí)修改元素ConcurrentModificationException
建議使用java.util.concurrent的集合線程同步類
特征
方法名為emptyXxx(空集合)/singletonXxx(包含傳入元素的集合)/unmodifiableXxx(包含傳入集合元素的集合)
適用范圍
emptyXxx
Set
List
Map
Iterator
Enumeration
singletonXxx
Set
List
Map
unmodifiableXxx
Map
List
Set
特征
方法名為checkedXxx
適用范圍
List
Map
Queue
Set
Collection
特征
asLifoQueue(將傳入的Deque轉(zhuǎn)換成Queue)
list(將傳入的Enumeration轉(zhuǎn)換成ArrayList)
newSetFromMap(根據(jù)傳入的空Map返回Set)
nCopies(根據(jù)傳入的n返回含n個(gè)副本的List)
特征
addAll
copy(將源集合元素復(fù)制到目標(biāo)集合中)
適用范圍
addAll
Collection
copy
List
特征
binarySearch(二分查找特定元素)
frequency(查找元素出現(xiàn)次數(shù))
indexOfSubList(返回目標(biāo)list在源list的開(kāi)始位置)
subIndexOfSubList(返回目標(biāo)list在源list的結(jié)束位置)
shuffle(返回隨機(jī)索引元素)
適用范圍
binarySearch
List
frequency
Collection
shuffle
List
特征
fill(替換集合所有元素)
replaceAll(替換特定的值)
適用范圍
fill
List
replaceAll
List
特征
sort(排序)
swap
rotate(反轉(zhuǎn))
reverse
適用范圍
List
特征
min/max(尋找最大/小元素)
disJoint(判斷兩個(gè)集合元素是否全不同)
適用范圍
Collection
總結(jié)Collections工具類能對(duì)各接口以及實(shí)現(xiàn)類實(shí)現(xiàn)多種操作
集合類級(jí)操作
返回線程安全集合
返回不可變集合
返回安全視圖
集合間的轉(zhuǎn)換
涉及到內(nèi)部元素的操作
添加元素到集合中
查找特定元素
替換元素
改變?cè)匚恢?/p>
元素間的比較
雖然有些方法不如其他包內(nèi)的工具類好用,但是總體來(lái)說(shuō)功能還是非常強(qiáng)大的。
這篇文章算是對(duì)官方文檔的總結(jié)和歸納,也加以自己的思考,也是面試題之一,希望自己能在之后不會(huì)再吃這道題的虧。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/77842.html
摘要:整個(gè)包,按照功能可以大致劃分如下鎖框架原子類框架同步器框架集合框架執(zhí)行器框架本系列將按上述順序分析,分析所基于的源碼為。后,根據(jù)一系列常見(jiàn)的多線程設(shè)計(jì)模式,設(shè)計(jì)了并發(fā)包,其中包下提供了一系列基礎(chǔ)的鎖工具,用以對(duì)等進(jìn)行補(bǔ)充增強(qiáng)。 showImg(https://segmentfault.com/img/remote/1460000016012623); 本文首發(fā)于一世流云專欄:https...
摘要:使用默認(rèn)隨機(jī)源對(duì)指定列表進(jìn)行置換。將集合排序使用二分搜索法搜索指定列表,以獲得指定對(duì)象根據(jù)元素的自然順序,返回給定的最大元素。 1_Map集合概述和特點(diǎn) A:Map接口概述 查看API可以知道: 將鍵映射到值的對(duì)象 一個(gè)映射不能包含重復(fù)的鍵 每個(gè)鍵最多只能映射到一個(gè)值 B:Map接口和Collection接口的不同 Map是雙列的,Collection是單列的 Map...
摘要:第三階段常見(jiàn)對(duì)象的學(xué)習(xí)集合框架集合在實(shí)際需求中,我們常常會(huì)遇到這樣的問(wèn)題,在諸多的數(shù)據(jù)中,通過(guò)其編號(hào)來(lái)尋找某一些信息,從而進(jìn)行查看或者修改,例如通過(guò)學(xué)號(hào)查詢學(xué)生信息。面試題和的區(qū)別是單列集合的頂層接口,有子接口和。 第三階段 JAVA常見(jiàn)對(duì)象的學(xué)習(xí) 集合框架——Map集合 showImg(https://segmentfault.com/img/remote/1460000019683...
摘要:?jiǎn)尉€程集合本部分將重點(diǎn)介紹非線程安全集合。非線程安全集合框架的最新成員是自起推出的。這是標(biāo)準(zhǔn)的單線程陣營(yíng)中唯一的有序集合。該功能能有效防止運(yùn)行時(shí)造型。檢查個(gè)集合之間不存在共同的元素?;谧匀慌判蚧蛘页黾现械淖畲蠡蜃钚≡?。 【編者按】本文作者為擁有十年金融軟件開(kāi)發(fā)經(jīng)驗(yàn)的 Mikhail Vorontsov,文章主要概覽了所有標(biāo)準(zhǔn) Java 集合類型。文章系國(guó)內(nèi) ITOM 管理平臺(tái) O...
摘要:中的集合稱為單列集合,中的集合稱為雙列集合。洗牌通過(guò)數(shù)字完成洗牌發(fā)牌發(fā)牌將每個(gè)人以及底牌設(shè)計(jì)為將最后張牌直接存放于底牌,剩余牌通過(guò)對(duì)取模依次發(fā)牌。存放的過(guò)程中要求數(shù)字大小與斗地主規(guī)則的大小對(duì)應(yīng)。 01Map集合概述 A:Map集合概述: 我們通過(guò)查看Map接口描述,發(fā)現(xiàn)Map接口下的集合與Collection接口下的集合,它們存儲(chǔ)數(shù)據(jù)的形式不同 ? a:Collection中的集...
閱讀 1966·2023-04-25 16:19
閱讀 3091·2021-11-24 09:39
閱讀 828·2021-11-16 11:44
閱讀 1688·2019-08-29 12:52
閱讀 1138·2019-08-26 13:33
閱讀 1073·2019-08-26 10:26
閱讀 2199·2019-08-23 16:42
閱讀 2566·2019-08-23 14:37