list.stream 筛选 相同 ids集合的数据
时间: 2024-06-14 13:03:36 浏览: 94
可以使用Java 8的stream()方法和Collectors.groupingBy()方法来筛选相同ids集合的数据。具体步骤如下:
1.首先,将List转换为Map,其中键是id,值是User对象。
2.然后,使用Collectors.groupingBy()方法将Map中的User对象分组为具有相同id的列表。
3.最后,使用Map.values()方法获取所有值(即具有相同id的User对象列表),并使用filter()方法筛选出具有相同id的User对象列表。
下面是一个示例代码:
```java
Map<Integer, List<User>> map = userList.stream().collect(Collectors.groupingBy(User::getId));
List<List<User>> result = map.values().stream().filter(list -> list.size() > 1).collect(Collectors.toList());
```
在上面的代码中,我们首先将userList转换为Map,其中键是id,值是User对象。然后,我们使用groupingBy()方法将Map中的User对象分组为具有相同id的列表。最后,我们使用filter()方法筛选出具有相同id的User对象列表,并将结果存储在result列表中。
阅读全文