06 集合框架(集合的特點和資料結構的總結)

2021-08-17 06:29:49 字數 2353 閱讀 3195

1 集合

collection(單列集合)

list(有序,可重複)

arraylist 

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

執行緒不安全,效率高。

vector

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

執行緒安全,效率低。

linkedlist

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

執行緒不安全,效率高。

set(無序,唯一)

hashset

底層資料結構是雜湊表,

雜湊表依賴於兩個方法hashcode()和equlas()

執行順序

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

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

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

false:就直接新增到集合

否:直接新增到集合

最終:自動生成這兩個方法即可

linkedhashset

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

由鍊錶保證元素有序

由雜湊表保證元素唯一

treeset

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

如何保證元素唯一性呢?

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

如何保證元素的排序呢?

兩種方式:

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

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

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

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

map(雙列集合)

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

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

hashmap

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

雜湊表依賴於兩個方法hashcode()和equlas()

執行順序

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

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

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

false:就直接新增到集合

否:直接新增到集合

最終:自動生成這兩個方法即可

linkedhashmap

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

由鍊錶保證元素有序

由雜湊表保證元素唯一

hashtable 

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

雜湊表依賴於兩個方法hashcode()和equlas()

執行順序

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

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

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

false:就直接新增到集合

否:直接新增到集合

最終:自動生成這兩個方法即可

treemap                               

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

如何保證元素唯一性呢?

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

如何保證元素的排序呢?

兩種方式:

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

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

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

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

一    如何選擇哪種集合那?

看需求是否是鍵值對形式?

是 map

鍵是否需要排序

是:treemap

否:  hashmap

不知道就使用hashmap

否 collection

元素是否唯一?

是 set

元素是否排序

是:treeset

否:  hashset

不知道,就使用hashset

否 list

要安全嗎?

是 vector

否 arraylist 或 linkedlist

增刪多:linkedlist

查詢多:arraylist 

如果不知道就使用arraylist

二   集合的常見方法及遍歷方式

collection

add()   remove()  contains() iterator() size()

遍歷  :       增強for   迭代器

list:   get()    遍歷:普通for

setmap  put() remove() containskey() containsvalue()  keyset()  get() value() entryset() size()

遍歷:根據鍵找值     根據鍵值對物件,分別找鍵和值

5 03 集合框架 set集合

一 set集合概述 乙個不包含重複元素的 collection。更確切地講,set 不包含滿足e1.equals e2 的元素對e1和e2,並且最多包含乙個 null 元素。正如其名稱所暗示的,此介面模仿了數學上的 set 抽象。在所有構造方法以及 add equals 和 hashcode 方法的...

2018 3 28 集合框架

1.迭代器的作用 為集合而生,用來專門遍歷集合中的元素 2.collection介面中的iterator 方法返回乙個iterator 通過iterator介面的兩個方法即可方便實現遍歷 hasnext 判斷是否存在另乙個可訪問的元素 next 返回要訪問的下乙個元素 3.map類使用迭代器遍歷元素...

44 集合和陣列的區別

1.陣列 定義 儲存一種資料型別的集合容器 陣列的特點 1.只能儲存一種資料型別的資料 2.陣列一但初始化長度就固定了 3.陣列中的元素於元素之間的記憶體位址是連續的 注意 object型別的陣列可以儲存任意型別的資料 2.集合 定義 集合是儲存物件資料的集合容器。集合相比陣列的優勢 1.集合可以儲...