TreeSet属于Set集合的子类,而Set集合属于Collection集合的子类,所以TreeSet是单值存储的。那么我们怎么使我们自己定义的类的数据进行顺序存储呢?
- 得在自定义类处创建一个Comparable接口
- 定义顺序存储的属性重写
我们首先创建一个Preson类,生成setter/getter、toString、equals和HashCode方法。
static class Preson implements Comparable<Preson>{
//要比较的是Preson与Preson类
private String name;
private int age;
/**
* this 与 o 进行比较
* 返回的数据是:
* 1. 负数:this小
* 2. 零:相同
* 3. 正数:this大
* @param o
* @return
*/
@Override
public int compareTo(Preson o) {
//比较年龄,进行排序
//规定按照年龄升序
if(this.age > o.age){
return -1;
}else if(this.age == o.age){
//如果发现两个一样大,不存储第二个数据
return 0;
}
return 1;
}
//生成构造方法
public Preson() {
}
public Preson(String name, int age) {
this.name = name;
this.age = age;
}
//生成getter/setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {