Collection集合 總結筆記

2021-09-20 20:10:49 字數 1966 閱讀 7602

2:set集合(理解)

(1)set集合的特點

無序,唯一

(2)hashset集合(掌握)

a:底層資料結構是雜湊表(是乙個元素為鍊錶的陣列)

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

執行順序:

首先比較雜湊值是否相同

相同:繼續執行equals()方法

返回true:元素重複了,不新增

返回false:直接把元素新增到集合

不同:就直接把元素新增到集合

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

由hashcode()和equals()保證的

d:開發的時候,**非常的簡單,自動生成即可。

e:hashset儲存字串並遍歷

f:hashset儲存自定義物件並遍歷(物件的成員變數值相同即為同乙個元素)

(3)treeset集合

a:底層資料結構是紅黑樹(是乙個自平衡的二叉樹)

b:保證元素的排序方式

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

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

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

讓集合構造方法接收comparator的實現類物件

c:把我們講過的**看一遍即可

(4)案例:

a:獲取無重複的隨機數

b:鍵盤錄入學生按照總分從高到底輸出

3:collection集合總結(掌握)

collection

|--list    有序,可重複

|--arraylist

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

執行緒不安全,效率高

|--vector

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

執行緒安全,效率低

|--linkedlist

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

執行緒不安全,效率高

|--set    無序,唯一

|--hashset

底層資料結構是雜湊表。

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

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

開發中自動生成這兩個方法即可

|--linkedhashset

底層資料結構是鍊錶和雜湊表

由鍊錶保證元素有序

由雜湊表保證元素唯一

|--treeset

底層資料結構是紅黑樹。

如何保證元素排序的呢?

自然排序

比較器排序

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

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

4:針對collection集合我們到底使用誰呢?(掌握)

唯一嗎?

是:set

排序嗎?

是:treeset

否:hashset

如果你知道是set,但是不知道是哪個set,就用hashset。

否:list

要安全嗎?

是:vector

否:arraylist或者linkedlist

查詢多:arraylist

增刪多:linkedlist

如果你知道是list,但是不知道是哪個list,就用arraylist。

如果你知道是collection集合,但是不知道使用誰,就用arraylist。

如果你知道用集合,就用arraylist。

5:在集合中常見的資料結構(掌握)

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

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

hash***:底層資料結構是雜湊表。依賴兩個方法:hashcode()和equals()

tree***:底層資料結構是二叉樹。兩種方式排序:自然排序和比較器排序

開始做,堅持做,重複做

集合 Collection集合總結

list有序,可重複 abstractlist 父類abstractcollection抽象類,實現了list介面 arraylist 父類abstractlist 底層資料結構是陣列,查詢快,增刪慢。執行緒不安全,不同步,效率高 vector 父類abstractlist 底層資料結構是陣列,查詢...

Collection集合總結

collection list 有序,可重複 arraylist 底層資料結構是陣列,查詢快,增刪慢。執行緒不安全,效率高 vector 底層資料結構是陣列,查詢快,增刪慢。執行緒安全,效率低 linkedlist 底層資料結構是鍊錶,查詢慢,增刪快。執行緒不安全,效率高 set 無序,唯一 has...

AJPFX總結Collection集合(上)

出現集合類的原因 物件導向語言對事物的體現都是以物件的形式,所以為了方便對多個物件的操作,就對物件進行儲存,集合就是儲存物件最常用的乙個方式.陣列和集合都是容器有何不同?陣列雖也可儲存物件,但長度是固定的,集合長度是可變的,陣列中可以儲存基本資料型別,集合只能儲存物件.特點 集合只用於儲存物件,集合...