Java 8 Stream 判断两个 List 是否有相同元素
不使用 for 循环判断两个 List 是否有相同元素
在 Java 8 中,您可以使用 stream 和 anyMatch 方法高效地判断两个 List<String> 是否包含相同的元素,而无需使用 for 循环。
以下是一个示例代码:
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');
boolean hasCommonElements = list1.stream()
.anyMatch(list2::contains);
if (hasCommonElements) {
System.out.println('两个列表有相同元素.');
} else {
System.out.println('两个列表没有相同元素.');
}
}
}
代码解释:
- 创建两个
ArrayList列表:list1和list2,并添加元素。 - 使用
stream方法将list1转换为一个流。 - 使用
anyMatch方法,在list2中检查是否存在与流中的任何元素匹配的元素。 anyMatch方法返回true如果找到匹配的元素,否则返回false。- 根据
hasCommonElements的值打印出相应的信息,以确定两个列表是否有相同的元素。
优势:
- 利用 Java 8 的 Lambda 表达式和 Stream API 特性,简化代码并提高可读性。
- 比使用
for循环更高效。
注意:
- 确保您的项目中使用的是 Java 8 或更高版本才能使用此方法。
原文地址: http://www.cveoy.top/t/topic/hAv 著作权归作者所有。请勿转载和采集!