天天看點

java: Set類及子類:TreeSet有序子類,HashSet無序子類:重複元素

Set類及子類:

TreeSet有序子類;

HashSet無序(散列)子類

HashSet子類的内容是沒有順序的,單個元素也不會重複的(對象除外)。

  

TreeSet有序:

TreeSet子類實作了SortSet子類(排序)接口,TreeSet接口是可以排序的。

向TreeSet類中添加自定義對象時,該自定義對象需要複寫Comparable接口中的CompareTo排序方法,否則會報:類轉換異常

java.lang.ClassCastException

可能需要在複寫toString()方法,否則列印的時候報錯:

[org.conllection.Person@139a55, org.conllection.Person@1db9742, org.conllection.Person@106d69c]

例如:

添加資料時,有一個自定義類:Person類,2個元素,Name(名字),age(年齡),如果用年齡排序,重複年齡會被剔除掉

person:

setdemo2:

結果如下:

是以,應該在Comparable的CompareTo方法裡面在判斷name是否重複。

修改後:

[姓名:張三, 年齡:30, 姓名:李四, 年齡:30, 姓名:王五, 年齡:31, 姓名:趙六, 年齡:31, 姓名:田七, 年齡:32]