java集合的steam流获取集合的重复元素
时间: 2024-05-01 21:19:16 浏览: 110
可以使用Java 8中的Stream流来获取集合的重复元素。可以使用groupingBy()方法和filter()方法来实现。
下面是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 1, 2, 5, 6, 5);
Map<Integer, Long> map = list.stream()
.collect(Collectors.groupingBy(i -> i, Collectors.counting()));
List<Integer> result = map.entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
System.out.println(result); // 输出 [1, 2, 5]
}
}
```
首先,使用groupingBy()方法将集合中的元素分组并计数。然后,使用filter()方法过滤出计数大于1的元素,并使用map()方法将它们转换为List类型的结果。最后,输出结果。
阅读全文