集合框架 TreeSet集合

2021-10-18 22:58:33 字數 2931 閱讀 1177

泛型就是一種不確定的資料型別,使用《字母》,可以使用在類上,方法上和介面上。

泛型類,指的是在類上有乙個確定的資料型別,在建立該類物件時確定其資料型別。

//: 表示一種不確定的資料型別

public

class

boxpublic

void

setelement

(e element)

}

//泛型類上的,在建立物件的時候確定資料型別

public

class

demo1

}

泛型方法,表示在方法上有乙個不確定的資料型別,在呼叫這個方法時來確定其資料型別

public

class

demo3

//給乙個集合新增元素

//可變引數: 資料型別...變數名

//t...arr 表示可以接收多個t型別的資料,等價於t arr

public

static

collection

addelement

(collection

list, t.

..arr)

return list;

}}

泛型介面指的是,在介面上有乙個不確定的資料型別,可以在介面的實現類上確定其資料型別;『

也可以把介面的泛型沿用到實現類上,在建立類的物件時確定其資料型別。

//inter: 在inter介面上不確定的資料型別t

public

inte***ce

inter

//inter: 確定介面上的泛型為string

public

class

interimpl

implements

inter

}

//把inter介面上的泛型,沿用到interimpl2類上

public

class

interimpl2

implements

inter

}

public

class

demo4

}

<?> : 可以是任意型別

<? extends number>: number或者number的子類

<? super number>: number或者number的父類

注意:一般泛型萬用字元是使用在方法的引數上,限定引數的資料型別。

treeset集合可以對元素進行排序,排序有兩個方式,分別是自然排序和比較器排序

public

class

student

implements

comparable

@override

public string tostring()

';}@override

public

intcompareto

(student o)

return num;

}}

public

class

setdemo2

}}

在建立treeset集合的時候,指定comparator比較器,對集合中的元素進行排序

//在建立treeset物件時,指定比較器comparator

setset =

newtreeset

<

>

(new

comparator

()})

;set.

add(

newstudent

("aaa",18

));set.

add(

newstudent

("ccc",17

));set.

add(

newstudent

("bbb",19

));set.

add(

newstudent

("eee",20

));set.

add(

newstudent

("ddd",20

));for

(student student : set)

1. 如果使用api中已有的類作為treeset元素,

當api中的類已經實現了comparable自然排序的規則,但是這個排序規則不滿足我們的要求

這個時候,我們可以選擇comparator比較器排序。

2. 如果是自定義的類作為treeset元素,比較器排序或者自然排序,任選乙個就可以了。

treeset集合可以對元素進行排序,是因為底層的資料結構是二叉樹。

二叉樹:由若干個節點組成的樹形結構,乙個節點最多有兩個子節點

二叉查詢樹(二叉搜尋樹,二叉排序樹):對於任意乙個節點,左邊儲存較小的節點,右邊儲存較大的節點

二叉平衡樹:對於任意乙個節點,左子樹和右子樹的高度差不超過1

左旋:如果右子樹比左子樹的高度差超過1,就需要進行左旋,以達到再次平衡

右旋:如果左子樹比右子樹的高差度超過1,就需要進行右旋,以達到再次平衡

導致二叉樹不平衡的幾種情況,如何恢復平衡?

1.左左: 在根節點的左子樹的左子樹上新增節點,直接右旋

2.左右: 在根節點的左子樹的右子樹上新增節點,先左旋,再右旋

3.右右: 在根節點的右子樹的右子樹上新增節點,直接左旋

4.右左: 在根節點的右子樹的左子樹上新增節點,先右旋,再左旋

集合框架 Map集合

map集合 同collection,是集合框架中的頂層介面。一次新增一對元素,collection一次新增乙個元素。所有,map集合也稱為雙列集合,collection集合稱為單列集合。介面map key是鍵,value是值,其實map集合中儲存的就是鍵值對,map集合中必須保證鍵的唯一性。常用方法...

AJPFX關於TreeSet集合的介紹

需求 鍵盤錄入5個學生資訊 姓名,語文成績,數學成績,英語成績 按照總分從高到低輸出到控制台。分析 1 建立鍵盤錄入物件 2 建立treeset集合,使用匿名內部類實現comparator介面,重寫compara方法 3 判斷集合中元素的個數,向其中新增元素 4 遍歷集合 class demo tr...

java集合框架(map集合)

map集合 該集合儲存鍵值對,一對一對往裡存,而且要保證鍵值得唯一性。一 基本方法 1.新增 put k key,v value 將指定的值與此對映中的指定鍵關聯 可選操作 putall map m 從指定對映中將所有對映關係複製到此對映中 可選操作 2.刪除 從此對映中移除所有對映關係 可選操作 ...