首页 > Java > java教程 > Java中如何高效地查找两个列表之间的共同元素?

Java中如何高效地查找两个列表之间的共同元素?

Mary-Kate Olsen
发布: 2024-12-08 10:57:16
原创
246 人浏览过

How Can I Efficiently Find Common Elements Between Two Lists in Java?

从两个列表中检索公共元素

在 Java 中使用集合时,您可能会遇到需要查找共享公共元素的情况通过多个列表。您可以采取多种方法来完成此任务。

使用 Collection#retainAll()

Collection#retainAll() 方法提供了一种简单的解决方案来查找常见的元素。它通过删除未包含在指定集合 (listB) 中的所有元素来更新调用列表 (listA)。这实际上只保留了公共元素。

listA.retainAll(listB); // listA now contains only common elements
登录后复制

创建新列表

如果您希望保留原始列表,您可以创建一个名为 common 的新列表。该列表最初填充了 listA 中的元素,然后使用 keepAll() 方法过滤掉非公共元素。

List<Integer> common = new ArrayList<>(listA);
common.retainAll(listB); // common now contains only common elements
登录后复制

利用 Stream#filter()

对于那些喜欢流的人,您可以利用 Stream#filter() 方法。此方法涉及使用 Collection#contains() 检查 listA 中的每个元素是否存在于 listB 中。满足此条件的元素将添加到公共列表中。

List<Integer> common = listA.stream().filter(listB::contains).toList(); // common now contains only common elements
登录后复制

注意:虽然此方法提供了灵活性,但它往往比其他方法慢。

以上是Java中如何高效地查找两个列表之间的共同元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板