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]