
1:Iterable:
它是一個泛型接口這個接口中僅僅有一個方法,iterator獲得一個迭代器
2:Collection頂級集合類其中包含了各種操作集合的方法,同樣也是一個泛型接口
3:set集合:也是一個泛型接口,它以及他的孩子中不允許有重復(fù)的元素,集合內(nèi)部元素沒有順序
? ? ?<1>:hashSet:是一個基于散列表的集合:它里面的元素在遍歷時,依次訪問所有的桶,由于散列將元素分配在表中的各個位置,所以訪問的順序時隨機(jī)的;只有當(dāng)我們不關(guān)心遍歷的順序時才使用它;
? ? ?<2>:SortedSet:也是一個泛型接口:擁有Set的所有特性;
? ? ? ? ? A:TreeSet樹集,和散列集HashSet有點類似,但是它對散列集進(jìn)行了改進(jìn),其中的元素是有序的,以任意順序插入,但遍歷時元素將按照某種順序排列;每次插入一個元素時都會將其放入恰當(dāng)?shù)奈恢?,(采用了?shù)據(jù)結(jié)構(gòu)中的紅黑樹對集合進(jìn)行排序)其中也不能有重復(fù)元素;
? ? ? ? ? 和HashSet比起來,插入元素時慢,但比數(shù)組和鏈表插入元素時塊;當(dāng)我們關(guān)心遍歷時元素出現(xiàn)的順序時,我們就使用TreeSet;當(dāng)我們不關(guān)心元素遍歷的順序時就使用hashSet
? ? <3>:EnumSet是一個枚舉類型元素集的高效實現(xiàn)。由于枚舉類型只有有限個實例;所以EnumSet內(nèi)部用位序列實現(xiàn);如果對應(yīng)的值在集合中,則相應(yīng)的位被值為1;EnumSet類沒有公共的構(gòu)造器;可以使用靜態(tài)工廠方法構(gòu)造這個集合;可以使用Set接口常用的方法來修改EnumSet;
Ps:Objects是一個被final修飾的類;其中的方法都是靜態(tài)的方法
4:Deque是javaSe1.6引入的他是一個接口,是由ArrayQuene和LinkedList去實現(xiàn)的;這兩個類都提供了雙端隊列,必要時可以改變隊列的長度;
? ? <1>PriorityQuene:優(yōu)先級隊列:可以按任意順序插入,但檢索時總是按照順序檢索,無論什么時候調(diào)用Remove方法,總會刪除隊列中的最小的元素;采用一種叫做堆的數(shù)據(jù)結(jié)構(gòu),堆是以中可以自我調(diào)整的二叉樹,可以將最小的元素移動到根;
? ? ? ? 和TreeSet中的迭代不同;優(yōu)先級隊列不是按照元素的排列的順序訪問的。而刪除卻總是刪掉剩余元素中優(yōu)先級數(shù)最小的那個元素;
5:List:是一個集合接口:它里面的元素也不允許重復(fù),用于描述一個有序的集合;集合中的元素位置十分重要;
<1>:LinkedList:同時也實現(xiàn)了Quene接口,是一種鏈?zhǔn)酱鎯涌?,向集合中插入元素時效率較高,但遍歷查找元素時的效率較低;鏈表不支持隨機(jī)訪問,如果要查尋鏈表中第n個元素,必須從頭開始;它的get(index)方法也是一樣從頭開始;
注釋:Get方法做了微小的優(yōu)化;如果索引大于size()/2就從列表尾開始搜索元素;
<2>:ArrayList:數(shù)組列表,相對于數(shù)組而言它的空間必須要提前確定,可以動態(tài)的擴(kuò)展空間;隨機(jī)查詢一個元素比較快,但是刪除和插入指定元素的尤其是中間位置的效率較低;需要頻繁移動元素;
<3>:Vactor這是一個已經(jīng)被遺棄的集合:可以讓兩個線程安全的訪問一個對象;但是如果由一個線程訪問對象時,vactor將會在同步操作上花費大量的時間;而ArrayList方法是不同步的,因此建議在不需要同步時使用ArrayList;