TreeSet集合中的对象,需要实现Comparable接口,对于String类、Integer类等由于已经实现了Comparable接口,所以不许再实现此接口。
Comparable接口中有一个public int compareTo(){}方法需要 实现,根据返回值进行排序,一般为-1,0,1
步骤1:首先创建一个Person类,让此类实现Comparable<Person>接口,并实现pubic int compareTo(Person p){ }
步骤2:创建Set<Person> set=new TreeSet<Person>();
...................
set.add( );
例如:
public class Demo111 {
public static void main(String[] args) {
Set<Person1> set=new TreeSet<Person1>();
set.add(new Person1("小明",20));
set.add(new Person1("小王",21));
set.add(new Person1("小二",20));
set.add(new Person1("小明",25));
set.add(new Person1("小四",20));
set.add(new Person1("小明",20));
System.out.println(set);
}
}
class Person1 implements Comparable<Person1>{
private String name;
private int age;
public Person1(String name,int age) {
this.name=name;
this.age=age;
}
@Override
public String toString() {
return this.name+" "+this.age;
}
@Override
public int compareTo(Person1 p) {
if(this.age>p.age) {
return 1;
}
if(this.age<p.age) {
return -1;
}
else {
return this.name.compareTo(p.name);
}
}
}
输出结果为:
[小二 20, 小四 20, 小明 20, 小王 21, 小明 25]