程序出错,重新用java语言从头开始编一个
时间: 2024-01-14 18:08:33 浏览: 29
好的,根据您的需求,我可以给您提供以下 Java 代码实现:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student("Tom", 18));
students.add(new Student("Jerry", 20));
students.add(new Student("Alice", 19));
students.add(new Student("Bob", 21));
// 使用 TreeSet 对象存储 Student,按照姓名长度排序
Set<Student> studentSet = new TreeSet<>(Comparator.comparingInt(s -> s.getName().length()));
studentSet.addAll(students);
// 遍历 studentSet
for (Student s : studentSet) {
System.out.println(s);
}
}
}
class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return name + "(" + age + ")";
}
}
```
上述代码定义了一个 `Student` 类,其中包含学生的姓名和年龄,并且重写了 `toString` 方法,以便在输出时能够显示学生的姓名和年龄。接下来,我们创建了几个 `Student` 对象,并将它们存储到 `students` 列表中。然后,我们使用 `TreeSet` 对象 `studentSet` 来存储 `students` 列表中的学生对象,并按照姓名长度排序。最后,我们遍历 `studentSet` 集合,依次输出其中每个学生对象。
`TreeSet` 对象是 Java 集合框架中的一个类,它提供了类似于 `set` 的功能,但是它保证集合中的元素是有序的。在这里,我们使用 `TreeSet` 对象来存储 `Student` 对象,并通过 `Comparator.comparingInt` 方法指定按照学生姓名长度排序。
希望这个代码能够满足您的需求。如果您有任何其他问题,请随时问我。