TreeSet:
用于對Set集合進行元素的指定順序排序,排序需要依據(jù)元素自身具備的比較性。
如果元素不具備比較性,在運行時會發(fā)生ClassCastException異常。
所以需要元素實現(xiàn)Comparable接口,強制讓元素具備比較性,復寫compareTo方法。
依據(jù)compareTo方法的返回值,確定元素在TreeSet數(shù)據(jù)結構中的位置。
TreeSet方法保證元素唯一性的方式:就是參考比較方法的結果是否為0,如果return 0,視為兩個對象重復,不存。
注意:在進行比較時,如果判斷元素不唯一,比如,同姓名,同年齡,才視為同一個人。
在判斷時,需要分主要條件和次要條件,當主要條件相同時,再判斷次要條件,按照次要條件排序。
TreeSet集合排序有兩種方式,Comparable和Comparator區(qū)別:
1:讓元素自身具備比較性,需要元素對象實現(xiàn)Comparable接口,覆蓋compareTo方法。
2:讓集合自身具備比較性,需要定義一個實現(xiàn)了Comparator接口的比較器,并覆蓋compare方法,并將該類對象作為實際參數(shù)傳遞給
TreeSet集合的構造函數(shù)。
第二種方式較為靈活。
本文版權歸黑馬程序員Java培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員Java培訓學院
首發(fā):http://java.itheima.com/