这个问题是我在学习类集的时候遇到的,要想进行排序其实上是针对对象数组进行排序处理。
如果要对对象数组进行处理,对象所在的类必须要覆写Comparable接口并且覆写CompareTo()方法,只有通过此方法才能进行排序。
具体代码实现:
//对Person类的name属性进行排序
class Person implements Comparable<Person> {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
@Override
public int compareTo(Person o) {
if (this.name.compareTo(o.name) > 0) {
return 1;
} else if(this.name.compareTo(o.name) < 0) {
return -1;
}else{
return 0;
}
}
}
测试代码:
public class Test {
public static void main(String[] args) {
TreeSet<Person> set=new TreeSet<>();
//利用Set集合去掉重复元素
set.add(new Person("张三"));
set.add(new Person("张三"));
set.add(new Person("王五"));
set.add(new Person("王麻子"));
set.add(new Person("李四"));
System.out.println(set);
}
}
运行结果: