2022-12-15
treeset 方法 student ts 集合
TreeSet集合
HashSet集合存儲的元素是無序的和不可重復(fù)的,為了對集合中的元素進(jìn)行排序,Set接口提供了另一個可以對HashSet集合中元素進(jìn)行排序的類——TreeSet。
接下來通過一個案例演示TreeSet集合的用法。
Java |
上述代碼中,從打印結(jié)果可以看出,添加的元素已經(jīng)自動排序,并且重復(fù)存入的整數(shù)1和3只添加了一次。
TreeSet集合之所以可以對添加的元素進(jìn)行排序,是因為元素的類可以實現(xiàn)Comparable接口 (基本類型的包裝類,String類都實現(xiàn)了該接口),Comparable接口強(qiáng)行對實現(xiàn)它的每個類的對象進(jìn)行整體排序,這種排序被稱為類的自然排序。Comparable接口的compareTo()方法被稱為自然比較方法。如果將自定義的Student對象存入TreeSet,TreeSet將不會對添加的元素進(jìn)行排序,Student對象必須實現(xiàn)Comparable接口并重寫compareTo()方法實現(xiàn)對象元素的順序存取。
接下來通過一個案例講解使用compareTo()方法實現(xiàn)對象元素的順序存取。
Java |
從運行結(jié)果可以看出,TreeSet按照存入元素的順序倒過來存入了集合中,因為Student類實現(xiàn)了Comparable接口,并重寫了compareTo()方法,當(dāng)compareTo()方法返回0的時候集合中只有一個元素;當(dāng)compareTo()方法返回正數(shù)的時候集合會正常存取;當(dāng)compareTo()方法返回負(fù)數(shù)的時候集合會倒序存儲。
上面介紹了TreeSet集合的自然排序,它還有另一種實現(xiàn)排序的方式,即實現(xiàn)Comparator接口,重寫compare()方法和equals()方法,但是由于所有的類默認(rèn)繼承Object,而Object中有equals()方法,所以自定義比較器類時,不用重寫equals()方法,只需要重寫compare()方法,這種排序被稱為比較器排序。
接下來通過一個案例學(xué)習(xí)將自定義的Student對象通過比較器的方式存入TreeSet集合。
Java |
開班時間:2021-04-12(深圳)
開班盛況開班時間:2021-05-17(北京)
開班盛況開班時間:2021-03-22(杭州)
開班盛況開班時間:2021-04-26(北京)
開班盛況開班時間:2021-05-10(北京)
開班盛況開班時間:2021-02-22(北京)
開班盛況開班時間:2021-07-12(北京)
預(yù)約報名開班時間:2020-09-21(上海)
開班盛況開班時間:2021-07-12(北京)
預(yù)約報名開班時間:2019-07-22(北京)
開班盛況Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right 京ICP備12003911號-5 京公網(wǎng)安備 11010802035720號