java Collectors.groupingBy 自定义条件
时间: 2023-07-07 07:44:49 浏览: 116
java自定义集合类
4星 · 用户满意度95%
如果你想使用Java 8中的Collectors.groupingBy方法来根据自定义条件对一个数据集进行分组,你可以使用Collectors.groupingBy方法的重载版本,该版本接受一个Function参数,该Function参数将每个元素映射到一个自定义分组键。例如,假设你有一个Person类的列表,你想根据Person对象的年龄分组,但只想分成两组:18岁及以下和19岁及以上。你可以这样做:
```
Map<String, List<Person>> groups = persons.stream()
.collect(Collectors.groupingBy(
person -> person.getAge() <= 18 ? "18 and under" : "19 and over"));
```
在这个例子中,我们使用了一个lambda表达式将Person对象映射到一个字符串,该字符串指示该对象属于哪个分组。最终,我们得到了一个Map对象,其中键是分组名称,值是一个Person对象列表。
阅读全文