stream list相减
时间: 2023-09-26 15:12:10 浏览: 77
stream list相减是指对两个列表进行操作,取得它们的差集。具体的实现步骤如下:
1. 首先,需要将两个列表中的元素分别取出各自的id组成一个列表。
2. 然后,利用stream流对其中一个id列表进行过滤操作,筛选出不包含在另一个id列表中的元素,形成差集的id列表。
3. 最后,可以根据差集的id列表进行相应的删除操作。
另外,还有一种实现方式是使用flatMap方法,将两个列表中的元素映射为键值对的形式,并将它们合并成一个流。然后,通过对流进行操作,筛选出不包含在另一个id列表中的键值对,得到差集的结果。 这种方式的具体实现代码如下:
```
List<Map.Entry<String, String>> differenceList = oldList.stream()
.flatMap(i -> Stream.of(new AbstractMap.SimpleEntry<>(i.name1, i.value1), new AbstractMap.SimpleEntry<>(i.name2, i.value2)))
.filter(entry -> !idList.contains(entry.getKey()))
.collect(Collectors.toList());
```
其中,`oldList`为原始列表,`idList`为要进行差集操作的id列表。通过`flatMap`方法将原始列表中的元素映射为键值对的形式,然后进行过滤操作,筛选出不包含在id列表中的键值对,最后将结果收集到一个列表中。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Java中使用Stream流对List进行操作](https://blog.csdn.net/weixin_48287987/article/details/128828727)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [Java 8流将List项减少并组合到Map](https://blog.csdn.net/weixin_42510262/article/details/115778458)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文