使用stream流统计数组中出现一次的元素
时间: 2024-04-21 22:05:39 浏览: 77
Java 中删除数组中所有出现的元素.docx
假设数组为arr,可以使用Java 8的stream流来实现统计数组中出现一次的元素:
```java
Map<Integer, Long> counts = Arrays.stream(arr)
.boxed()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
List<Integer> result = counts.entrySet().stream()
.filter(entry -> entry.getValue() == 1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
```
首先,将int数组转换为Integer流,然后使用groupingBy函数按照元素值进行分组,得到一个Map,其中key为元素值,value为该元素值出现的次数。
接着,使用entrySet()方法将Map转换为Set<Map.Entry<Integer, Long>>流,然后使用filter函数过滤出出现次数为1的元素,最后使用map函数将其转换为Integer流,并使用toList()方法将结果转换为List<Integer>类型。
可以看到,使用stream流可以非常方便地实现统计数组中出现一次的元素。
阅读全文