對JAVA中集合的總結

2021-07-25 07:37:19 字數 2516 閱讀 8665

1:集合

collection(單列集合)

list(有序,可重複)

arraylist

底層資料結構是陣列,查詢快,增刪慢

執行緒不安全,效率高

vector

底層資料結構是陣列,查詢快,增刪慢

執行緒安全,效率低

linkedlist

底層資料結構是鍊錶,查詢慢,增刪快

執行緒不安全,效率高

set(無序,唯一)

hashset

底層資料結構是雜湊表。

雜湊表依賴兩個方法:hashcode()和equals()

執行順序:

首先判斷hashcode()值是否相同

是:繼續執行equals(),看其返回值

是true:說明元素重複,不新增

是false:就直接新增到集合

否:就直接新增到集合

最終:自動生成hashcode()和equals()即可

linkedhashset

底層資料結構由鍊錶和雜湊表組成。

由鍊錶保證元素有序。

由雜湊表保證元素唯一。

treeset

底層資料結構是紅黑樹。(是一種自平衡的二叉樹)

如何保證元素唯一性呢?

根據比較的返回值是否是0來決定

如何保證元素的排序呢?

兩種方式

自然排序(元素具備比較性)

讓元素所屬的類實現comparable介面

比較器排序(集合具備比較性)

讓集合接收乙個comparator的實現類物件

map(雙列集合)

a:map集合的資料結構僅僅針對鍵有效,與值無關。

b:儲存的是鍵值對形式的元素,鍵唯一,值可重複。

hashmap

底層資料結構是雜湊表。執行緒不安全,效率高

雜湊表依賴兩個方法:hashcode()和equals()

執行順序:

首先判斷hashcode()值是否相同

是:繼續執行equals(),看其返回值

是true:說明元素重複,不新增

是false:就直接新增到集合

否:就直接新增到集合

最終:自動生成hashcode()和equals()即可

linkedhashmap

底層資料結構由鍊錶和雜湊表組成。

由鍊錶保證元素有序。

由雜湊表保證元素唯一。

hashtable

底層資料結構是雜湊表。執行緒安全,效率低

雜湊表依賴兩個方法:hashcode()和equals()

執行順序:

首先判斷hashcode()值是否相同

是:繼續執行equals(),看其返回值

是true:說明元素重複,不新增

是false:就直接新增到集合

否:就直接新增到集合

最終:自動生成hashcode()和equals()即可

treemap

底層資料結構是紅黑樹。(是一種自平衡的二叉樹)

如何保證元素唯一性呢?

根據比較的返回值是否是0來決定

如何保證元素的排序呢?

兩種方式

自然排序(元素具備比較性)

讓元素所屬的類實現comparable介面

比較器排序(集合具備比較性)

讓集合接收乙個comparator的實現類物件

2:到底使用那種集合

看需求。

是否是鍵值物件形式:

是:map

鍵是否需要排序:

是:treemap

否:hashmap

不知道,就使用hashmap。

否:collection

元素是否唯一:

是:set

元素是否需要排序:

是:treeset

否:hashset

不知道,就使用hashset

否:list

要安全嗎:

是:vector(其實我們也不用它,後面我們講解了多執行緒以後,我在給你回顧用誰)

否:arraylist或者linkedlist

增刪多:linkedlist

查詢多:arraylist

不知道,就使用arraylist

不知道,就使用arraylist

3:集合的常見方法及遍歷方式

collection:

add()

remove()

contains()

iterator()

size()

遍歷:增強for

迭代器|--list

get()

遍歷:普通for

|--set

map:

put()

remove()

containskey(),containsvalue()

keyset()

get()

value()

entryset()

size()

遍歷:根據鍵找值

根據鍵值對物件分別找鍵和值

java中集合的使用總結

集合的一些技巧 需要唯一嗎?需要 set 需要制定順序 需要 treeset 不需要 hashset 但是想要乙個和儲存一致的順序 有序 linkedhashset 不需要 list 需要頻繁增刪嗎 需要 linkedlist 不需要 arraylist 如何記錄每乙個容器結構和所屬的體系呢?看名字...

java中集合詳解

一 集合 是一種儲存資料的手段,一次可以儲存多個值 二 補充 短期儲存 rom 一旦計算機關閉,儲存的資料就會消失如 物件,變數,陣列,集合 長期儲存 ram 直接儲存到硬碟上,可以長久的儲存,不會隨著計算機的關閉而消失,如 各種檔案,txt,doc,png,mp4 三 學習集合 1.陣列 可以儲存...

Java中集合框架(1)

幾個重要的介面 1.collection介面 collection介面進行的操作是新增,獲取和刪除集合中的資料。2.list介面 list介面指的就是列表,指的是乙個有序地物件集合,也可以稱為乙個物件序列。list介面繼承自collection介面,該介面的元素是按順序存放的,允許存在相同的元素,每...