集合的特點

2021-09-29 19:47:12 字數 3676 閱讀 3386

1。 set集合概述和特點

總結:* set集合的特點

* 不允許儲存重複的元素

* 沒有索引

set集合的基本使用

new hashset<>();

2.雜湊值

總結:

* 雜湊值簡介

* 用於計算儲存元素的位置的. 提高儲存元素和取出元素的效率的

* 如何獲取雜湊值

* hashcode()

* 雜湊值的特點

* 同乙個物件的雜湊值是一樣的

* 預設情況下,不同的物件的雜湊值是不一樣的,重寫hashcode就能達到不同的物件的雜湊值是一樣的

3.hashset集合的特點

* 無序(儲存的順序和取出的順序有可能是不一致的)

* 不允許儲存重複的元素

* 沒有索引

資料結構:

jdk8之前: 雜湊表(陣列 + 鍊錶)

jdk8之後: 雜湊表(陣列 + 鍊錶 + 紅黑樹)

4.hashset集合保證元素唯一性的原理

* 首先計算該元素的雜湊值(hash()),在雜湊表中找有沒有相同的雜湊值

* 如果沒有相同的雜湊值,認定為這個元素不是乙個重複的元素,新增到雜湊表中

* 如果有相同的雜湊值,必須再呼叫equals方法判斷相同的雜湊值的內容是否是一樣的

* 如果內容一樣: 認定為這個元素就是乙個重複的元素,不儲存

* 如果內容不一樣:認定為這個元素不是乙個重複的元素,儲存到雜湊表中

* 結論:

要想判斷乙個元素是否是唯一的,必須重寫hashcode和equals方法

5.linkedhashset集合特點

* 有序(儲存的順序和取出的順序是一致的)

* 不允許儲存重複的元素

* 沒有索引

資料結構:

陣列+鍊錶 + 鍊錶 ==> 陣列 + 雙向鍊錶

6.treeset集合的特點:

* 有序(按照一定的規則進行排序,形成一定順序的資料)

* 不允許儲存重複的元素

* 沒有索引

資料結構:

二叉樹 --> 紅黑樹

treeset構造方法

* treeset(): 按照自然順序進行排序

* treeset(comparator comparator) : 按照比較器進行排序

自然排序comparable的使用

* 案例需求

儲存學生物件並遍歷,建立treeset集合使用無參構造方法

要求:按照年齡從小到大排序,年齡相同時,按照姓名的字母順序排序

* 實現步驟

用treeset集合儲存自定義物件,無參構造方法使用的是自然排序對元素進行排序的

自然排序,就是讓元素所屬的類實現comparable介面,重寫compareto(t o)方法

重寫方法時,一定要注意排序規則必須按照要求的主要條件和次要條件來寫

案例**:

public

class

treesetdemo02}}

public

class

student

implements

comparable

}

7.比較器排序comparator的使用

* 案例需求

儲存學生物件並遍歷,建立treeset集合使用帶參構造方法

要求:按照年齡從小到大排序,年齡相同時,按照姓名的字母順序排序

* 實現步驟

用treeset集合儲存自定義物件,帶參構造方法使用的是比較器排序對元素進行排序的

比較器排序,就是讓集合構造方法接收comparator的實現類物件,重寫compare(t o1,t o2)方法

重寫方法時,一定要注意排序規則必須按照要求的主要條件和次要條件來寫

案例**:

public

class

treesetdemo}}

class

comparatorimpl

implements

comparator

}public

class

student

8.成績排序案例【應用】

* 案例需求

* 用treeset集合儲存多個學生資訊(姓名,語文成績,數學成績),並遍歷該集合

* 要求:按照總分從高到低出現

public

class

treesetdemo})

;//建立學生物件

student s1 =

newstudent

("林青霞",98

,100);

student s2 =

newstudent

("張曼玉",95

,95);

student s3 =

newstudent

("王祖賢"

,100,93

);student s4 =

newstudent

("柳岩"

,100,97

);student s5 =

newstudent

("風清揚",98

,98);

student s6 =

newstudent

("左冷禪",97

,99);

// student s7 = new student("左冷禪", 97, 99);

student s7 =

newstudent

("趙雲",97

,99);

//把學生物件新增到集合

ts.add(s1)

; ts.

add(s2)

; ts.

add(s3)

; ts.

add(s4)

; ts.

add(s5)

; ts.

add(s6)

; ts.

add(s7)

;//遍歷集合

for(student s : ts)}}

public

class

student

public

student

(string name,

int chinese,

int math)

public string getname()

public

void

setname

(string name)

public

intgetchinese()

public

void

setchinese

(int chinese)

public

intgetmath()

public

void

setmath

(int math)

public

intgetsum()

}

集合的特點

集合的特點 有的可變,有的不可變 元素無次序,不可重複。集合中的元素不能重複,可作為一種簡單高效的元素去重方式。集合沒有索引,它的元素無次序,不是序列。利用set 和 建立集合時,要求集合中的元素必須是可雜湊 hsshable 的,即在利用set 和 建立集合的時候,集合中的元素必須是不可變的。利用...

set集合的特點

python的set和其他語言類似,是乙個無序不重複元素集,基本功能包括關係測試和消除重複元素.集合物件還支援union 聯合 intersection 交 difference 差 和sysmmetric difference 對稱差集 等數 算.sets 支援 x in set,len set ...

常用集合的特點總結

物件用於封裝特有資料,物件多了需要儲存,如果物件的個數不確定。就使用集合容器進行儲存。1,用於儲存物件的容器。2,集合的長度是可變的。3,集合中不可以儲存基本資料型別值。集合容器因為內部的資料結構不同,有多種具體容器。不斷的向上抽取,就形成了集合框架。框架的頂層collection介面 1,新增。b...