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.集合可以儲...