javastream流分组并排序
时间: 2023-09-22 15:11:17 浏览: 128
Java的Stream API提供了便捷的分组和排序功能。下面是一个简单的示例代码:
假设有一个Person类:
```java
public class Person {
private String name;
private int age;
private String gender;
// 构造函数、getter和setter方法省略
}
```
现在假设有一个Person列表,在使用Stream API对其进行分组和排序:
```java
List<Person> personList = new ArrayList<>();
// 假设已经向personList中添加了多个Person对象
// 按照性别分组
Map<String, List<Person>> genderGroup = personList.stream()
.collect(Collectors.groupingBy(Person::getGender));
// 按照年龄排序
List<Person> ageSorted = personList.stream()
.sorted(Comparator.comparingInt(Person::getAge))
.collect(Collectors.toList());
```
上述代码中,首先使用`groupingBy`方法按照性别对Person进行分组,得到一个Map对象,其中key为性别,value为该性别对应的Person列表。然后使用`sorted`方法按照年龄对Person进行排序,得到一个按照年龄从小到大的Person列表。
注意,上述代码中使用了Lambda表达式,需要在Java 8及以上版本中运行。如果你使用的是更早的Java版本,可以使用匿名内部类等方式代替Lambda表达式。
阅读全文