java8使用groupby
时间: 2023-10-24 21:23:31 浏览: 86
JAVA8 STREAM COLLECT GROUPBY分组实例解析
Java 8中可以使用Stream API中的`groupingBy()`方法进行分组,语法如下:
```java
Map<K, List<T>> result = list.stream().collect(Collectors.groupingBy(function));
```
其中,`K`表示分组的键的类型,`T`表示元素类型,`function`表示根据元素类型`T`获取分组键`K`的函数。
例如,假设有一个`Person`类,其中包含姓名和年龄两个属性,我们想要按照年龄分组,可以使用以下代码:
```java
List<Person> personList = Arrays.asList(
new Person("Alice", 18),
new Person("Bob", 21),
new Person("Cathy", 18),
new Person("David", 21)
);
Map<Integer, List<Person>> groupByAge = personList.stream()
.collect(Collectors.groupingBy(Person::getAge));
```
这样就可以得到一个以年龄为键,以对应年龄的人的列表为值的`Map`对象`groupByAge`。
阅读全文