- TreeSet在使用自然排序时元素需满足的条件:
- 元素所属的类必须实现
java.lang.Comparable
接口。
- 在
Comparable
接口的compareTo
方法中,需要定义元素之间的比较逻辑,以确定元素的自然顺序。
- 示例代码:
import java.util.TreeSet;
class Person implements Comparable<Person> {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public int compareTo(Person other) {
// 按age属性从小到大排序
return this.age - other.age;
}
}
public class TreeSetExample {
public static void main(String[] args) {
TreeSet<Person> treeSet = new TreeSet<>();
treeSet.add(new Person("Alice", 25));
treeSet.add(new Person("Bob", 20));
treeSet.add(new Person("Charlie", 30));
for (Person person : treeSet) {
System.out.println("Name: " + person.getName() + ", Age: " + person.getAge());
}
}
}