他山之石 集合框架

2021-06-19 18:54:12 字數 1574 閱讀 7532

有序否允許元素重複否

collection否是

list是是

setabstractset否否

hashset

treeset

是(用二叉樹排序)

mapabstractmap

否使用key-value來對映和儲存資料,key必須惟一,value可以重複

hashmap

treemap

是(用二叉樹排序)

list介面對collection進行了簡單的擴充,它的具體實現類常用的有arraylist和linkedlist。你可以將任何東西放到乙個list容器中,並在需要時從中取出。arraylist從其命名中可以看出它是一種類似陣列的形式進行儲存,因此它的隨機訪問速度極快,而linkedlist的內部實現是鍊錶,它適合於在鍊錶中間需要頻繁進行插入和刪除操作。在具體應用時可以根據需要自由選擇。前面說的iterator只能對容器進行向前遍歷,而listiterator則繼承了iterator的思想,並提供了對list進行雙向遍歷的方法。 

set介面也是collection的一種擴充套件,而與list不同的時,在set中的物件元素不能重複,也就是說你不能把同樣的東西兩次放入同乙個set容器中。它的常用具體實現有hashset和treeset類。hashset能快速定位乙個元素,但是你放到hashset中的物件需要實現hashcode()方法,它使用了前面說過的雜湊碼的演算法。而treeset則將放入其中的元素按序存放,這就要求你放入其中的物件是可排序的,這就用到了集合框架提供的另外兩個實用類comparable和comparator。乙個類是可排序的,它就應該實現comparable介面。有時多個類具有相同的排序演算法,那就不需要在每分別重複定義相同的排序演算法,只要實現comparator介面即可。集合框架中還有兩個很實用的公用類:collections和arrays。collections提供了對乙個collection容器進行諸如排序、複製、查詢和填充等一些非常有用的方法,arrays則是對乙個陣列進行類似的操作。 

map是一種把鍵物件和值物件進行關聯的容器,而乙個值物件又可以是乙個map,依次類推,這樣就可形成乙個多級對映。對於鍵物件來說,像set一樣,乙個map容器中的鍵物件不允許重複,這是為了保持查詢結果的一致性;如果有兩個鍵物件一樣,那你想得到那個鍵物件所對應的值物件時就有問題了,可能你得到的並不是你想的那個值物件,結果會造成混亂,所以鍵的唯一性很重要,也是符合集合的性質的。當然在使用過程中,某個鍵所對應的值物件可能會發生變化,這時會按照最後一次修改的值物件與鍵對應。對於值物件則沒有唯一性的要求。你可以將任意多個鍵都對映到乙個值物件上,這不會發生任何問題(不過對你的使用卻可能會造成不便,你不知道你得到的到底是那乙個鍵所對應的值物件)。map有兩種比較常用的實現:hashmap和treemap。hashmap也用到了雜湊碼的演算法,以便快速查詢乙個鍵,treemap則是對鍵按序存放,因此它便有一些擴充套件的方法,比如firstkey(),lastkey()等,你還可以從treemap中指定乙個範圍以取得其子map。鍵和值的關聯很簡單,用pub(object key,object value)方法即可將乙個鍵與乙個值物件相關聯。用get(object key)可得到與此key物件所對應的值物件。

集合框架 Map集合

map集合 同collection,是集合框架中的頂層介面。一次新增一對元素,collection一次新增乙個元素。所有,map集合也稱為雙列集合,collection集合稱為單列集合。介面map key是鍵,value是值,其實map集合中儲存的就是鍵值對,map集合中必須保證鍵的唯一性。常用方法...

集合框架 TreeSet集合

泛型就是一種不確定的資料型別,使用 字母 可以使用在類上,方法上和介面上。泛型類,指的是在類上有乙個確定的資料型別,在建立該類物件時確定其資料型別。表示一種不確定的資料型別 public class boxpublic void setelement e element 泛型類上的,在建立物件的時候...

java集合框架(map集合)

map集合 該集合儲存鍵值對,一對一對往裡存,而且要保證鍵值得唯一性。一 基本方法 1.新增 put k key,v value 將指定的值與此對映中的指定鍵關聯 可選操作 putall map m 從指定對映中將所有對映關係複製到此對映中 可選操作 2.刪除 從此對映中移除所有對映關係 可選操作 ...