treeSet集合中的自然排序和比較器排序

2021-09-28 22:48:43 字數 2125 閱讀 4562

set介面類有三個子類:hashset,linkedlist和treeset;

treeset底層資料結構是二叉樹和雜湊表,所以能對元素進行排序,且元素唯一;

treeset排序分為兩種:

自然排序(使用空參構造):需要集合中的元素實現comparable介面,並且重寫介面中的compareto方法;

比較器排序(使用有參構造):傳入乙個比較器並實現它(可以定義乙個類,實現比較器這個介面);另外一般採用匿名內部類的方式傳入,比較簡單;

//自然排序:

//測試類:

public

class

test}}

//student類:

class

student

implements

comparable

//實現comparable這個介面

private string name;

private

int age;

public

student()

public

student

(string name,

int age)

public string getname()

public

intgetage()

@override

public string tostring()

';}@override

public

intcompareto

(student student)

}

//比較器排序:

//student類:

class

student

public

student

(string name,

int age)

public string getname()

public

intgetage()

@override

public string tostring()

';}}

//測試類:

public

class

test})

; set.

add(

newstudent

("zhangsan",19

)); set.

add(

newstudent

("zhangsan",19

)); set.

add(

newstudent

("lisi",20

)); set.

add(

newstudent

("wangwu",22

)); set.

add(

newstudent

("lisi",18

));for

(student student : set)}}

//測試類還可以這樣寫,只是比較複雜:

public

class

test}}

class

mycomparator

implements

comparator

}

另外,比較器亦可對integer型陣列和集合進行排序:

//1.陣列:

public

class

test1

; arrays.

sort

(arr,

newcomparator

()})

; system.out.

println

(arrays.

tostring

(arr));

}}//2. 集合

public

class

test1})

; system.out.

println

(list);}

}

17 8 TreeSet集合和排序器

元素有序,可以按照一定的規則進行排序,具體排序方式取決於構造方法 沒有帶索引的方法,所以不能使用普通for迴圈遍歷 由於是set集合,所以不包含重複元素的集合 基本使用 public class treesetdemo 執行結果 使用步驟 用treeset集合儲存自定義物件,無參構造方法使用的是自然...

java集合TreeSet的兩種排序方式

自然排序 要求新增進treeset中的元素所在的類implements comparable介面 重寫compareto object obj 在此方法內指明按照元素的哪個屬性進行排序 向treeset中新增元素即可。若不實現此介面,會報執行時異常 定製排序 建立乙個實現comparator介面的實...

AJPFX關於TreeSet集合的介紹

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