import java.util.*;
public class FindDuplicates {
public static void main(String[] args) {
// 创建一个包含重复元素的列表
List<Integer> list = Arrays.asList(1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9);
// 方法1:使用stream API和Collectors.groupingBy统计每个元素出现的次数
Map<Integer, Long> frequencyMap = list.stream()
.collect(Collectors.groupingBy(e -> e, Collectors.counting()));
// 找出所有出现次数大于1的元素,即为重复元素
System.out.println("方法1 - 重复元素:");
frequencyMap.entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.forEach(entry -> System.out.println("元素 " + entry.getKey() + " 出现了 " + entry.getValue() + " 次"));
// 方法2:使用HashSet来找出重复元素
Set<Integer> uniqueElements = new HashSet<>();
Set<Integer> duplicates = new HashSet<>();
for (Integer element : list) {
if (!uniqueElements.add(element)) { // 如果add返回false,说明该元素已经存在
duplicates.add(element);
}
}
System.out.println("方法2 - 重复元素: " + duplicates);
}
}
方法1:使用Java 8的Stream API和Collectors.groupingBy
对列表中的元素进行分组,并统计每个元素出现的次数。然后过滤出出现次数大于1的元素,这些就是重复元素。
方法2:使用HashSet
来存储唯一的元素。当尝试将一个元素添加到HashSet
时,如果该元素已经存在,则将其添加到另一个HashSet
(duplicates
)中,这样就可以找出所有的重复元素。
这两种方法都可以有效地找出列表中的重复数据。
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站