stream流求重复元素
时间: 2023-10-21 21:26:44 浏览: 114
举例讲解Java中的Stream流概念
要使用stream流求重复元素可以使用Collectors.groupingBy来将元素分组,并使用Collectors.filtering来过滤掉只出现一次的元素。
以下是一个示例代码:
```
List<Integer> numbers = Arrays.asList(1, 2, 1, 3, 4, 4);
Map<Integer, Long> countMap = numbers.stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
List<Integer> duplicates = countMap.entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
System.out.println(duplicates);
```
在这个示例中,我们首先使用groupingBy将元素分组,并使用counting函数计算每个元素的数量。然后,我们使用filter函数过滤掉只出现一次的元素,并将结果收集到一个列表中。最后,我们输出这个列表,即重复的元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Stream流实践(四):流中如何保留重复元素?(基本类型 对象)](https://blog.csdn.net/qq_44716086/article/details/129790712)[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: 33.333333333333336%"]
- *2* [rapid-stream:通过并行处理元素的流,不考虑输入顺序](https://download.csdn.net/download/weixin_42127748/19211816)[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: 33.333333333333336%"]
- *3* [使用stream流统计数组元素中的个数](https://blog.csdn.net/m0_61496760/article/details/125154941)[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: 33.333333333333336%"]
[ .reference_list ]
阅读全文