Java復(fù)習(xí)筆記第二篇----集合學(xué)習(xí)之上篇

image

1:Iterable:

它是一個(gè)泛型接口這個(gè)接口中僅僅有一個(gè)方法,iterator獲得一個(gè)迭代器

2:Collection頂級集合類其中包含了各種操作集合的方法,同樣也是一個(gè)泛型接口

3:set集合:也是一個(gè)泛型接口,它以及他的孩子中不允許有重復(fù)的元素,集合內(nèi)部元素沒有順序

  • <1>:hashSet:是一個(gè)基于散列表的集合:它里面的元素在遍歷時(shí),依次訪問所有的桶,由于散列將元素分配在表中的各個(gè)位置,所以訪問的順序時(shí)隨機(jī)的;只有當(dāng)我們不關(guān)心遍歷的順序時(shí)才使用它;
  • <2>:SortedSet:也是一個(gè)泛型接口:擁有Set的所有特性;
    • A:TreeSet樹集,和散列集HashSet有點(diǎn)類似,但是它對散列集進(jìn)行了改進(jìn),其中的元素是有序的,以任意順序插入,但遍歷時(shí)元素將按照某種順序排列;每次插入一個(gè)元素時(shí)都會將其放入恰當(dāng)?shù)奈恢茫ú捎昧藬?shù)據(jù)結(jié)構(gòu)中的紅黑樹對集合進(jìn)行排序)其中也不能有重復(fù)元素;
      和HashSet比起來,插入元素時(shí)慢,但比數(shù)組和鏈表插入元素時(shí)快;當(dāng)我們關(guān)心遍歷時(shí)元素出現(xiàn)的順序時(shí),我們就使用TreeSet;當(dāng)我們不關(guān)心元素遍歷的順序時(shí)就使用hashSet
  • <3>:EnumSet:是一個(gè)枚舉類型元素集的高效實(shí)現(xiàn)。由于枚舉類型只有有限個(gè)實(shí)例;所以EnumSet內(nèi)部用位序列實(shí)現(xiàn);如果對應(yīng)的值在集合中,則相應(yīng)的位被值為1;EnumSet類沒有公共的構(gòu)造器;可以使用靜態(tài)工廠方法構(gòu)造這個(gè)集合;可以使用Set接口常用的方法來修改EnumSet;

Ps:Objects是一個(gè)被final修飾的類;其中的方法都是靜態(tài)的方法

4:Deque是javaSe1.6引入的他是一個(gè)接口,是由ArrayQuene和LinkedList去實(shí)現(xiàn)的;這兩個(gè)類都提供了雙端隊(duì)列,必要時(shí)可以改變隊(duì)列的長度;

  • <1>PriorityQuene:優(yōu)先級隊(duì)列:可以按任意順序插入,但檢索時(shí)總是按照順序檢索,無論什么時(shí)候調(diào)用Remove方法,總會刪除隊(duì)列中的最小的元素;采用一種叫做堆的數(shù)據(jù)結(jié)構(gòu),堆是以中可以自我調(diào)整的二叉樹,可以將最小的元素移動到根;
    和TreeSet中的迭代不同;優(yōu)先級隊(duì)列不是按照元素的排列的順序訪問的。而刪除卻總是刪掉剩余元素中優(yōu)先級數(shù)最小的那個(gè)元素;

5:List:是一個(gè)集合接口:它里面的元素允許重復(fù),用于描述一個(gè)有序的集合;集合中的元素位置十分重要;

  • <1>:LinkedList:同時(shí)也實(shí)現(xiàn)了Quene接口,是一種鏈?zhǔn)酱鎯涌?,向集合中插入元素時(shí)效率較高,但遍歷查找元素時(shí)的效率較低;鏈表不支持隨機(jī)訪問,如果要查尋鏈表中第n個(gè)元素,必須從頭開始;它的get(index)方法也是一樣從頭開始;

注釋:Get方法做了微小的優(yōu)化;如果索引大于size()/2就從列表尾開始搜索元素;

  • <2>:ArrayList:數(shù)組列表,相對于數(shù)組而言它的空間必須要提前確定,可以動態(tài)的擴(kuò)展空間;隨機(jī)查詢一個(gè)元素比較快,但是刪除和插入指定元素的尤其是中間位置的效率較低;需要頻繁移動元素;

  • <3>:Vactor這是一個(gè)已經(jīng)被遺棄的集合:可以讓兩個(gè)線程安全的訪問一個(gè)對象;但是如果由一個(gè)線程訪問對象時(shí),vactor將會在同步操作上花費(fèi)大量的時(shí)間;而ArrayList方法是不同步的,因此建議在不需要同步時(shí)使用ArrayList;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容