有一个List集合,里面存储了5个Student对象。Student有姓名、年龄和成绩属性,按照要求进行排序(一行代码解决list对象集合排序问题)。
要求对List集合进行排序,排序规则是:
1、先按照成绩 降序 排列;
2、如果成绩相同,那么姓名 升序 排列;
3、如果姓名也相同,那么 年龄 降序排列。
package Java练习题;import java.util.Arrays;import parator;import java.util.List;public class studentSort {public static void main(String[] args) {Student[] stu = {new Student("张三", 20, 88),new Student("李四", 22, 74),new Student("王五", 19, 83),new Student("赵六", 16, 96),new Student("马七", 25, 65)};//第一步:打印初始对象结合System.out.println("开始顺序为:");List<Student> list = Arrays.asList(stu);list.forEach((student) -> {System.out.println("姓名:" + student.getName() + "年龄:" + student.getAge() + " 分数:" + student.getScore());});//第二步:排序paring(Students::getScore)默认是升序,添加reversed()可以实现降序//reversed()倒序排序方法list.sort(paring(Student::getScore).reversed().thenComparing(paring(Student::getName)).thenComparing(paring(Student::getAge).reversed()));//第三步:打印排序好的集合System.out.println("按照年龄排序后:");list.forEach((student) -> {System.out.println("姓名:" + student.getName() + "年龄:" + student.getAge() + " 分数:" + student.getScore());});}}//定义学生类class Student {private String name;private int age;private double score;public Student(String name, int age, double score) {super();this.name = name;this.age = age;this.score = score;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}}
有一个List集合 里面存储了5个Student对象。Student有姓名 年龄和成绩属性 按照多个属性进行排序(一行代码解决list对象集合排序问题)。