找出List<Long>中重复元素
时间: 2024-06-16 10:08:25 浏览: 16
要找出List<Long>中重复元素,可以通过两种方法实现:
方法1:使用Java 8的Stream API
可以使用Java 8的Stream API来实现,具体代码如下:
```java
List<Long> list = new ArrayList<>();
list.add(1L);
list.add(2L);
list.add(3L);
list.add(2L);
list.add(4L);
List<Long> result = list.stream()
.filter(i -> Collections.frequency(list, i) > 1)
.distinct()
.collect(Collectors.toList());
System.out.println(result);
```
这个代码使用了Stream API中的filter()方法来过滤出重复元素,然后再使用distinct()方法来去重,最后将结果保存到List中并输出。
方法2:使用HashMap
还可以使用HashMap来实现,具体代码如下:
```java
List<Long> list = new ArrayList<>();
list.add(1L);
list.add(2L);
list.add(3L);
list.add(2L);
list.add(4L);
Map<Long, Integer> map = new HashMap<>();
for (Long i : list) {
map.put(i, map.getOrDefault(i, 0) + 1);
}
List<Long> result = new ArrayList<>();
for (Map.Entry<Long, Integer> entry : map.entrySet()) {
if (entry.getValue() > 1) {
result.add(entry.getKey());
}
}
System.out.println(result);
```
这个代码使用了HashMap来统计每个元素出现的次数,然后再遍历HashMap来找出重复元素并保存到List中并输出。