如何按照指定属性(orderByColumn)和顺序(isAsc)对Java List<Student>对象进行排序?
时间: 2024-10-27 09:05:23 浏览: 26
在Java中,你可以使用Stream API和Comparator来按照指定的属性对学生列表进行排序。假设有一个Student类,它有一个名为`score`的属性,你可以这样做:
```java
import java.util.Comparator;
import java.util.List;
class Student {
String name;
int score;
// getters and setters...
}
public class Main {
public static void sortStudents(List<Student> students, String orderByColumn, boolean isAsc) {
if (students != null) {
if ("score".equals(orderByColumn)) { // 指定按照score属性排序
students.sort(Comparator.comparingInt(Student::getScore));
if (!isAsc) { // 降序排列
students.reverse();
}
} else {
throw new IllegalArgumentException("Unsupported property: " + orderByColumn);
}
}
}
public static void main(String[] args) {
List<Student> studentList = ...; // 你的学生列表
// 示例:升序按照score排序
sortStudents(studentList, "score", true);
// 示例:降序按照name排序
sortStudents(studentList, "name", false);
// 现在,studentList就是按照指定属性和顺序排序后的列表
// ...
阅读全文