lambda给list根据某字段相同排序另一个字段
时间: 2024-11-25 22:18:24 浏览: 7
Lambda表达式在Java中可以用来简化集合操作,比如对列表(List)进行基于某个字段的排序。假设你有一个Person对象的列表,你想先按照age字段升序排序,如果age相同,则再按照name字段降序排序。你可以这样做:
```java
import java.util.Comparator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Person> personList = ... // 假设这是你要排序的person对象列表
personList.sort(Comparator.comparing(Person::getAge)
.thenComparing(Person::getName, Comparator.reverseOrder()));
}
}
class Person {
private int age;
private String name;
// getters and setters...
public int getAge() { return age; }
public String getName() { return name; }
}
```
在这个例子中,`Comparator.comparing(Person::getAge)`用于按年龄排序,`thenComparing(Person::getName, Comparator.reverseOrder())`表示在age相同时,使用name字段进行降序排列。`reverseOrder()`是对默认升序排序的反转。
阅读全文