Java常用集合總結

2021-06-27 16:51:47 字數 4086 閱讀 4657

1.list

元素是有序的,可以重複,因為有索引

arraylist: 陣列結構,特定:查詢快,增刪慢,初始長度是10,50%延長

linkedlist: 鍊錶資料結構,特點:增刪快,查詢慢

vector: 陣列結構,執行緒同步,被arraylist代替,初始長度是10,100%延長,列舉是vector特有的取出方式,優先使用迭代器

2.linkedlist總結 : 特殊方法

addfirst

(e e)

將指定元素插入此列表的開頭

addlast

(e e)

將指定元素新增到此列表的結尾。

peekfirst

()獲取但不移除此列表的第乙個元素;如果此列表為空,則返回 null。

peeklast

()獲取但不移除此列表的最後乙個元素;如果此列表為空,則返回 null。

pollfirst

()獲取並移除此列表的第乙個元素;如果此列表為空,則返回 null。

polllast

()獲取並移除此列表的最後乙個元素;如果此列表為空,則返回 null。

removefirst

()移除並返回此列表的第乙個元素。

removelast

()移除並返回此列表的最後乙個元素。

offer

(e e)

將指定元素新增到此列表的末尾(最後乙個元素)。

offerfirst

(e e)

在此列表的開頭插入指定的元素。

offerlast

(e e)

在此列表末尾插入指定的元素。

注意:

1.addfirst

(e e)

,addlast

(e e)方法是新增到指定位置,不是替代,集合長度增加

2.removefirst(),

removelast

()取出元素並移除,會丟擲元素不存在異常,使用之前需要判斷

3.set元素是無序的,不可以重複(底層使用的map集合)

hashset:雜湊表結構,它存的是值得位址,先比較雜湊值,再比較物件(equals方法)

treeset:可以對集合中元素排序(預設自然順序)。儲存自定義物件時,自定義物件必須實現compared介面,並重寫compareto

(t o)定義排序規則。treeset底層使用的二叉樹排序演算法,排序比較快

10.treeset的第二種排序方式:當元素本身不具備比較性,或者沒有所需要的比較性,這時就需要讓集合本身具備需要的比較性。方法:定義比較器實現comparator

(介面),同樣重寫compare

(t o)方法並傳遞給treeset的建構函式

注意:當乙個

treeset

集合包含兩種排序方式時,以比較器為主

4.泛型:jdk1.5版本以後出現的新特性,用於解決安全問題,是一種安全機制,避免了強制轉換的麻煩,並把強轉異常轉到了編譯期,方便解決問題

5.map集合:和collection介面一樣是頂層介面,和collection介面沒有必然的聯絡。map集合以鍵值對形式訪問物件,而且要保證鍵的唯一性

基本方法

clear

()從此對映中移除所有對映關係(可選操作)。

containskey

(object

key)

如果此對映包含指定鍵的對映關係,則返回true。

containsvalue

(object

value)

如果此對映將乙個或多個鍵對映到指定值,則返回true。

entryset

()(重點方法)

返回此對映中包含的對映關係的set檢視。

equals

(object

o)比較指定的物件與此對映是否相等。

get(object

key)

返回指定鍵所對映的值;如果此對映不包含該鍵的對映關係,則返回null

hashcode

()返回此對映的雜湊碼值。

isempty

()如果此對映未包含鍵-值對映關係,則返回true。

keyset

()(重點方法)

返回此對映中包含的鍵的set檢視

put(k

key,v

value)

將指定的值與此對映中的指定鍵關聯(可選操作)。

putall

(map

<? extendsk

,? extendsv

> m)

從指定對映中將所有對映關係複製到此對映中(可選操作)。

remove

(object

key)

如果存在乙個鍵的對映關係,則將其從此對映中移除(可選操作)。

size

()返回此對映中的鍵-值對映關係數。

values

()返回此對映中包含的值的collection檢視

13.map集合常用子類

hashtable:雜湊表資料結構,鍵和值都不可為空,用作鍵的物件必須實現hashcode方法和equals方法,執行緒同步,

jdk1.0

開始使用

hashmap:雜湊表資料結構,鍵和值都可為空

,非執行緒同步,

jdk1.2

開始使用

treemap二叉樹資料結構,可以根據集合的鍵排序

6.map集合取出方式:

keyset:將集合中所有的鍵存入set集合,例:

mapmap = new hashmap< string , string >();

setkey = map.keyset();

for(iteratorit = key.iterator();it.hasnext();)

entryset:將集合中的對映關係的存入set

檢視。

mapmap = new hashmap< string , string >();

set< entry < string,string >>key = map.entryset();

for(iterator< entry < string,string >> it = key.iterator();it.hasnext();)

7.注意map集合中巢狀map的情況

常用Java集合類總結

昨天接到乙個 面試,有問道關於集合類的知識,剛好我自己對於這方面梳理的結構不是特別好,想要寫一篇部落格來總結關於這方面的內容。1.list a.arraylist底層是用動態陣列實現的,我個人比較喜歡用,取值的效率比較好 b.linkedlist底層是基於鍊錶實現的,對於一些經常增刪的程式比較適合 ...

java常用集合

執行緒安全 執行緒安全就是說多執行緒訪問同一 不會產生不確定結果。list和set類 list類和set類都是collection集合介面的子介面。set子介面 無序,不允許重複。list子介面 有序,可以允許重複。set和list對比 set 檢索元素效率低下,刪除和插入效率高,插入和刪除不會引起...

JAVA 集合總結

如果涉及到堆疊,佇列等操作,應該考慮用list,對於需要快速插入,刪除元素,應該使用linkedlist,如果需要快速隨機訪問元素,應該使用arraylist。如果程式在單執行緒環境中,或者訪問僅僅在乙個執行緒中進行,考慮非同步的類,其效率較高,如果多個執行緒可能同時操作乙個類,應該使用同步的類。要...