MST

星途 面试题库

面试题:Java中TreeSet基于自然排序的原理及示例

请阐述Java中TreeSet在使用自然排序时,元素需要满足什么条件?并编写一个示例代码,创建一个TreeSet,存储自定义类的对象,该自定义类实现自然排序,按某个属性从小到大排序。
50.2万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. TreeSet在使用自然排序时元素需满足的条件
    • 元素所属的类必须实现java.lang.Comparable接口。
    • Comparable接口的compareTo方法中,需要定义元素之间的比较逻辑,以确定元素的自然顺序。
  2. 示例代码
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());
        }
    }
}