Comparator.comparingDouble从大到小排序
时间: 2023-11-07 14:52:17 浏览: 50
Comparator.comparingDouble可以用于从大到小排序。使用reversed()方法可以将默认的从小到大排序反转为从大到小排序。可以通过将Comparator.comparingDouble().reversed()作为参数传递给Collections.sort()方法来实现。这样,列表将按照Double字段从大到小排序。
相关问题
Comparator.comparingDouble用法
Comparator.comparingDouble是Java 8中的一个静态方法,用于返回一个比较器,该比较器基于一个double类型的函数,对对象进行排序。该方法接收一个Function类型的lambda表达式作为参数,其中lambda表达式代表了需要进行排序的对象中double类型的getter方法。
例如,假设有一个Student类,包含了一个getScore()方法返回学生的成绩,可以使用Comparator.comparingDouble来按照学生成绩降序排序:
```
List<Student> studentList = new ArrayList<>();
studentList.sort(Comparator.comparingDouble(Student::getScore).reversed());
```
在上述代码中,Comparator.comparingDouble(Student::getScore)返回一个按照学生成绩升序排序的Comparator,而.reversed()则将其反转为降序排序。
.sorted(Comparator.comparingDouble
`.sorted(Comparator.comparingDouble)`是Java 8中的一种排序方式,用于对Double类型的元素进行排序。它可以按照指定的Double类型的属性进行排序,也可以按照多个属性进行排序。下面是一个例子:
假设有一个Student类,其中包含name和score属性,我们想按照score属性对Student对象进行排序,可以使用以下代码:
```java
List<Student> students = new ArrayList<>();
students.add(new Student("Tom", 80.0));
students.add(new Student("Jerry", 90.0));
students.add(new Student("Mike", 70.0));
students.sort(Comparator.comparingDouble(Student::getScore));
```
这里使用了`Comparator.comparingDouble`方法,它接受一个Function作为参数,用于提取需要排序的属性。在这个例子中,我们使用了`Student::getScore`方法提取了score属性。
如果我们想按照多个属性进行排序,可以使用`thenComparing`方法。例如,如果我们想按照score属性升序排序,如果score相同则按照name属性升序排序,可以使用以下代码:
```java
students.sort(Comparator.comparingDouble(Student::getScore).thenComparing(Student::getName));
```
这里使用了`thenComparing`方法,它接受一个Comparator作为参数,用于在前一个排序条件相同时进行比较。在这个例子中,我们使用了`Student::getName`方法提取了name属性。