Java 判断两个 List 是否有相同元素的多种方法
除了使用 stream 和 anyMatch 方法外,还有其他方法可以判断两个 List<String> 是否有相同的元素。
使用 retainAll 方法
一种方法是使用 retainAll 方法。这个方法会修改调用它的列表,仅保留与指定集合中的元素相同的元素。您可以在调用 retainAll 方法后检查列表是否为空来确定是否有相同的元素。以下是一个示例代码:
import java.util.ArrayList;
import java.util.List;
public class ListComparison {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("apple");
list1.add("banana");
list1.add("orange");
List<String> list2 = new ArrayList<>();
list2.add("orange");
list2.add("grape");
list2.add("kiwi");
list1.retainAll(list2);
if (!list1.isEmpty()) {
System.out.println("两个列表有相同元素.");
} else {
System.out.println("两个列表没有相同元素.");
}
}
}
在这个示例中,我们首先创建了两个 ArrayList 列表:list1 和 list2。我们使用 add 方法添加一些元素。
然后,我们调用 list1 的 retainAll 方法,传入 list2 作为参数。这将修改 list1,仅保留与 list2 中相同的元素。
最后,我们检查 list1 是否为空,如果不为空,则表示有相同的元素存在。根据结果打印相应的信息。
请注意,这种方法会修改原始列表。如果您希望保持原始列表的不变性,可以在判断之前创建一个副本列表并对副本列表使用 retainAll 方法。
使用第三方集合操作库
除了这两种方法,还可以使用其他的集合操作库,如 Guava 或 Apache Commons Collections,它们提供了更多用于集合比较的工具和方法。例如,Guava 的 Sets 类提供了一个 intersection 方法,可以返回两个集合的交集,从而判断它们是否包含相同的元素。
总而言之,判断两个 List 是否有相同元素有多种方法,您可以根据具体情况选择最适合的方法。
原文地址: https://www.cveoy.top/t/topic/hCP 著作权归作者所有。请勿转载和采集!