Map<String, List<LookupValueEntity>> vehicleListMap = lookList.stream().collect(Collectors.groupingBy(LookupValueEntity::getLookupValueCode));
时间: 2024-02-24 14:54:39 浏览: 136
Java8 stream 中利用 groupingBy 进行多字段分组求和案例
5星 · 资源好评率100%
这段代码是使用 Java 8 中的 Stream API 对一个 `List<LookupValueEntity>` 进行分组操作,将相同 `lookupValueCode` 的 `LookupValueEntity` 对象分成一组,并将这些分组放入一个 `Map<String, List<LookupValueEntity>>` 中。
具体地,`lookList` 是一个 `List<LookupValueEntity>` 对象,`Collectors.groupingBy(LookupValueEntity::getLookupValueCode)` 是一个静态方法,它接收一个分类函数 `LookupValueEntity::getLookupValueCode`,将其作为分组依据,将 `lookList` 中的元素分组,并将分组结果放入一个 `Map<String, List<LookupValueEntity>>` 中。
这个 `Map` 中的 key 是 `lookupValueCode` 字段的值,value 是一个 `List<LookupValueEntity>` 对象,它包含了所有 `LookupValueEntity` 对象,这些对象的 `lookupValueCode` 值相同。
例如,如果 `lookList` 中有以下两个 `LookupValueEntity` 对象:
```
LookupValueEntity{"code": "A", "value": "foo"}
LookupValueEntity{"code": "B", "value": "bar"}
```
那么执行上述代码后,会得到一个 `Map` 对象,其中包含了两个 `List` 对象:
```
{
"A": [{"code": "A", "value": "foo"}],
"B": [{"code": "B", "value": "bar"}]
}
```
其中,key 为 "A" 的 `List` 包含了第一个 `LookupValueEntity` 对象,key 为 "B" 的 `List` 包含了第二个 `LookupValueEntity` 对象。
阅读全文