TreeSet子类
TreeSet子类可以针对设置的数据进行排序保存。
范例:使用TreeSet保存数据
package com.lxh.eighteenchapter;
import java.util.Set;
import java.util.TreeSet;
public class JavaCollectionDemo489 {
public static void main(String[] args) {
Set<String> all=new TreeSet<String>();
all.add("张三");
all.add("李四");
all.add("王五");
all.add("周六");
all.add("6");
System.out.println(all);
}
}
执行结果
[6, 周六, 张三, 李四, 王五]
所以保存的数据会按照由小到大的顺序(字符串会按照字母大小顺序依次比较)排列。
TreeSet子类排序分析
TreeSet类在进行有序数据存储时依据的是Comparable接口实现排序,并且也是依据Comparable接口中的compareTo()方法来判断重复元素,所以在使用TreeSet进行自定义类对象保存时必须实现Comparable接口,但是在覆写compareTo()方法时需要进行类中全部属性的比较,否则会出现部分属性相同时被误判为同一对象,导致重复元素判断失败。
重复元素消除
hash码:public int hashCode();
对象比较:public boolean equals(Object obj)。