从两个列表中检索公共元素
在 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中文网其他相关文章!