全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)技術(shù)文章正文

Java培訓(xùn)之Set接口(二)

更新時(shí)間:2017-06-30 來(lái)源:黑馬程序員java培訓(xùn)學(xué)院 瀏覽量:

TreeSet:


用于對(duì)Set集合進(jìn)行元素的指定順序排序,排序需要依據(jù)元素自身具備的比較性。

如果元素不具備比較性,在運(yùn)行時(shí)會(huì)發(fā)生ClassCastException異常。

所以需要元素實(shí)現(xiàn)Comparable接口,強(qiáng)制讓元素具備比較性,復(fù)寫(xiě)compareTo方法。

依據(jù)compareTo方法的返回值,確定元素在TreeSet數(shù)據(jù)結(jié)構(gòu)中的位置。

TreeSet方法保證元素唯一性的方式:就是參考比較方法的結(jié)果是否為0,如果return 0,視為兩個(gè)對(duì)象重復(fù),不存。
 
注意:在進(jìn)行比較時(shí),如果判斷元素不唯一,比如,同姓名,同年齡,才視為同一個(gè)人。

在判斷時(shí),需要分主要條件和次要條件,當(dāng)主要條件相同時(shí),再判斷次要條件,按照次要條件排序。
 
TreeSet集合排序有兩種方式,Comparable和Comparator區(qū)別:

1:讓元素自身具備比較性,需要元素對(duì)象實(shí)現(xiàn)Comparable接口,覆蓋compareTo方法。

2:讓集合自身具備比較性,需要定義一個(gè)實(shí)現(xiàn)了Comparator接口的比較器,并覆蓋compare方法,并將該類(lèi)對(duì)象作為實(shí)際參數(shù)傳遞給

TreeSet集合的構(gòu)造函數(shù)。

第二種方式較為靈活。

本文版權(quán)歸黑馬程序員Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!

作者:黑馬程序員Java培訓(xùn)學(xué)院

首發(fā):http://java.itheima.com/



分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!