javastream流groupby分组 linkedhashmap
时间: 2024-10-18 11:15:09 浏览: 32
Java8 stream 中利用 groupingBy 进行多字段分组求和案例
5星 · 资源好评率100%
Java Stream API 的 `collect()` 方法可以配合 `Collectors.groupingBy()` 函数来对数据进行分组,这通常用于将集合按照某个键值进行分类。`LinkedHashMap` 是一个有序的哈希映射,它会保持插入顺序,非常适合作为 `groupingBy()` 结果的存储容器,因为每个分组项都会按照插入顺序排列。
当你有一个列表或其他可迭代对象,想要基于其中的某个属性(如一个对象的某个字段)进行分组时,可以这样做:
```java
List<MyObject> objects = ...; // 假设MyObject有field属性
Map<String, List<MyObject>> groupedObjects = objects.stream()
.collect(Collectors.groupingBy(MyObject::getField)); // 使用lambda表达式指定分组依据
// 现在groupedObjects是一个LinkedHashMap,键是对象的field值,值是包含该field值的所有对象的列表,按插入顺序排列。
```
在这个例子中,`MyObject::getField` 表示获取每个 `MyObject` 对象的 `field` 属性值作为分组键。
阅读全文