39 Java學習筆記 集合知識點彙總

2021-07-27 01:10:30 字數 2413 閱讀 1764

集合知識點彙總

集合知識點彙總:

collection (單列集合)

list (有序,可重複)

arraylist

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

執行緒不安全,效率高

vector

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

執行緒安全,效率低

linkedlist

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

執行緒不安全,效率高

set (無序,唯一)

hashset

底層資料結構是雜湊表。

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

執行順序:

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

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

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

是fales:就直接新增到集合。

否:就直接新增到集合。

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

linkedhashset

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

由鍊錶保證元素有序,

由雜湊表保證元素唯一

treeset

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

如何保證元素的唯一性呢?

根據比較的返回值是否為0來保證元素的唯一性

如何保證元素的排序呢?

兩種方式:

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

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

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

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

map (雙列集合)

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

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

hashmap

底層資料結構是雜湊表。

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

執行順序:

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

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

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

是fales:就直接新增到集合。

否:就直接新增到集合。

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

linkedhashmap

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

由鍊錶保證元素有序,

由雜湊表保證元素唯一

hashtable

treemap

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

如何保證元素的唯一性呢?

根據比較的返回值是否為0來保證元素的唯一性

如何保證元素的排序呢?

兩種方式:

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

集合的選擇使用:

集合的選擇使用:

看需求:

是否是鍵值對形式:

是:map

鍵是否需要排序:

是:treemap

否:hashmap

不知道:就是用hashmap

否:collection

元素是否唯一:

是:set

元素是否需要排序

是:treeset

否:hashset

不知道:就使用hashset

否:list

要安全麼?

是:vector

否:arraylist 或者linkedlist

增刪多: linkedlist

查詢多:arraylist

不知道,就用arraylist

不知道,就使用arraylist

各種集合常見功能和遍歷方式:

集合的常見方法和遍歷方式

collection

add()

remove()

contains()

iterator()

size()

遍歷方式:

增強for

迭代器|---list

get()

遍歷:普通for

|---set

map:

put()

remove()

containskey() , containsvalue()

keyset()

get()

value()

entryset()

size()

遍歷方式:

根據鍵找值

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

Java集合知識點總結

list有序且允許元素重複。map也屬於集合系統,但和collection介面沒關係。map是key對value的對映集合,其中key列就是乙個集合。key不能重複,但是value可以重複。sortedset和sortedmap介面對元素按指定規則排序,sortedmap是對key列進行排序。has...

java集合幾個知識點

1.arraylist在預設容量是10,每次進行add的時候會檢查容量,如果需要擴容則增加1.5倍,如果仍然小,則設為增加後的長度大小 2.copyonwritearraylist 保證執行緒安全的方法是 不對讀進行限制,寫的操作加重入鎖,寫的時候拷貝乙份陣列,並將新資料寫入,完成後再將引用返回。重...

Java集合知識點梳理

由collection介面派生的兩個介面是list和set,都可以使用迭代器來遍歷,它們都實現了iterator介面 一.list 實現list介面的常用類有linkedlist,arraylist,vector和stack,list允許有相同的元素。arraylist 基於陣列方式實現,無容量的限...