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...