java list stream根据id分组
时间: 2023-09-21 14:09:08 浏览: 163
java8 stream自定义分组求和并排序的实现
可以使用Java 8中的Stream API来根据id将List中的元素进行分组。具体实现方式如下:
假设有一个元素类Item,其中包含一个id属性:
```java
public class Item {
private int id;
// 其他属性...
// getter和setter方法...
}
```
现在有一个List<Item>列表,我们要将其中的元素根据id属性进行分组,可以使用下面的代码:
```java
Map<Integer, List<Item>> itemMap = itemList.stream()
.collect(Collectors.groupingBy(Item::getId));
```
其中,groupingBy方法接受一个Function类型的参数,用于将元素映射为分组的键,本例中使用Item::getId将元素映射为id属性,然后将元素分组并返回一个Map<Integer, List<Item>>类型的结果。
最终,我们可以通过遍历Map来访问分组后的元素,例如:
```java
for (Map.Entry<Integer, List<Item>> entry : itemMap.entrySet()) {
int id = entry.getKey();
List<Item> group = entry.getValue();
System.out.println("id=" + id + ", group=" + group);
}
```
阅读全文