全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

java找出list中重复数据

发布时间:2023-07-31 11:56:22
发布人:xqq

Java找出List中重复数据

在Java中,如果我们需要找出一个List中的重复数据,可以使用以下几种方法:

1. 使用循环和集合操作:

遍历List中的每个元素,将其添加到一个新的Set集合中。如果添加失败,说明该元素已经存在于Set中,即为重复数据。以下是示例代码:

`java

List list = Arrays.asList("A", "B", "C", "A", "D", "B");

Set set = new HashSet<>();

List duplicates = new ArrayList<>();

for (String element : list) {

if (!set.add(element)) {

duplicates.add(element);

}

}

System.out.println("重复数据:" + duplicates);

`

运行结果为:重复数据:[A, B]

该方法的时间复杂度为O(n),其中n为List的大小。

2. 使用Java 8的Stream API:

Java 8引入了Stream API,可以使用Stream的distinct()和filter()方法来找出重复数据。以下是示例代码:

`java

List list = Arrays.asList("A", "B", "C", "A", "D", "B");

List duplicates = list.stream()

.distinct()

.filter(element -> list.indexOf(element) != list.lastIndexOf(element))

.collect(Collectors.toList());

System.out.println("重复数据:" + duplicates);

`

运行结果为:重复数据:[A, B]

该方法的时间复杂度为O(n^2),其中n为List的大小。

3. 使用Java 8的Stream API和Collectors.groupingBy()方法:

可以使用Stream的collect()方法结合Collectors.groupingBy()方法来将List中的元素按照其出现次数进行分组,然后筛选出出现次数大于1的元素。以下是示例代码:

`java

List list = Arrays.asList("A", "B", "C", "A", "D", "B");

Map frequencyMap = list.stream()

.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

List duplicates = frequencyMap.entrySet().stream()

.filter(entry -> entry.getValue() > 1)

.map(Map.Entry::getKey)

.collect(Collectors.toList());

System.out.println("重复数据:" + duplicates);

`

运行结果为:重复数据:[A, B]

该方法的时间复杂度为O(n),其中n为List的大小。

通过以上方法,我们可以轻松地找出List中的重复数据。根据实际需求和数据规模的不同,选择合适的方法可以提高程序的效率和性能。

#java找出list

相关文章

如何解决Linux系统中出现的进程占用过多内存问题?

如何解决Linux系统中出现的进程占用过多内存问题?

2023-10-16
如何使用ThinkPHP6实现Excel导入导出?

如何使用ThinkPHP6实现Excel导入导出?

2023-10-16
怎么配置Python环境?

怎么配置Python环境?

2023-10-16
为什么视频保存后相册找不到?

为什么视频保存后相册找不到?

2023-10-16

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取