stream根据id分组
时间: 2023-10-21 12:04:03 浏览: 33
你可以使用Java 8的Stream API中的Collectors.groupingBy()方法来根据id分组。例如:
```java
List<Item> items = Arrays.asList(
new Item(1, "A"),
new Item(2, "B"),
new Item(1, "C"),
new Item(3, "D"),
new Item(2, "E"));
Map<Integer, List<Item>> groupedItems = items.stream().collect(Collectors.groupingBy(Item::getId));
System.out.println(groupedItems);
```
这里我们创建了一个Item类,其中包含id和name属性。然后我们创建了一个包含5个Item对象的列表。使用Stream API的groupingBy()方法,我们将这些对象按照id分组,并将结果存储在一个Map中。最后,我们将Map打印出来,结果应该是:
```
{1=[Item{id=1, name='A'}, Item{id=1, name='C'}], 2=[Item{id=2, name='B'}, Item{id=2, name='E'}], 3=[Item{id=3, name='D'}]}
```
这里我们可以看到,id为1的Item对象有两个,它们都被分到了同一个列表中。同样地,id为2和3的对象也被正确地分到了各自的列表中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)