List〈Student〉SList1里Student有两个属性,name和age如何让List里的Student根据age升序排序之后在放到List〈Student〉SList2里面
时间: 2024-12-11 15:24:52 浏览: 8
如果你有一个`List<Student>`叫做`SList1`,其中`Student`类有两个属性`name`和`age`,你可以按照`age`字段进行升序排序并将结果添加到一个新的`List<Student>`(`SList2`)。以下是实现此操作的Java代码示例:
首先,确保`Student`类实现了`Comparable`接口并覆盖了`compareTo`方法,以便于比较年龄:
```java
public class Student implements Comparable<Student> {
private String name;
private int age;
// 构造函数、getter和setter...
@Override
public int compareTo(Student other) {
return Integer.compare(this.age, other.age); // 按照age字段升序排序
}
}
```
然后,创建一个新的空列表`SList2`,使用Java 8的流(Stream) API 对`SList1`进行排序并收集到新列表:
```java
List<Student> SList1 = ...; // 你的原始学生列表
List<Student> SList2 = SList1.stream() // 创建流
.sorted(Comparator.naturalOrder()) // 自然顺序排序,即升序
.collect(Collectors.toList()); // 收集到新的列表中
```
现在,`SList2`就包含了一个按照`age`字段升序排序的学生列表。
阅读全文