//java规定在TreeSet集合中需要实现Comparable接口,之所以String类型和Integer类型不需要是因为它们底层实现了Comparable接口
import java.util.TreeSet;
public class TreeSetTest04 {
public static void main(String[] args) {
//创建TreeSet集合,指定Vip型
TreeSet<Vip> vips=new TreeSet<Vip>();
//往集合中添加元素
vips.add(new Vip("zhangsan",18));
vips.add(new Vip("lisi",25));
vips.add(new Vip("wangwu",33));
vips.add(new Vip("zhaoliu",25));
//遍历输出
for (Vip s:vips){
System.out.println(s);
}
}
}
public class Vip implements Comparable<Vip>{
String name;
int age;
public Vip() {
}
public Vip(String name,int age) {
this.name = name;
this.age=age;
}
@Override
public String toString() {
return "Vip{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
//this.age代表当前的对象的属性,o.age代表将要进行比较的对象的属性,二者进行比较,age相同,比较name属性,age不同,直接返回age
//返回值有等于0,大于0和小于0,至于为什么设定此返回值,因为自平衡二叉树(不细说,下次有机会再说)
public int compareTo(Vip o) {
if (this.age==o.age){
return this.name.compareTo(o.name);
}else{
return this.age-o.age;
}
}
}
Java基础 TreeSet的自定义类型实现Comparable接口
最新推荐文章于 2022-12-21 12:08:51 发布