不使用 for 循环判断两个 List 是否有相同元素

在 Java 8 中,您可以使用 streamanyMatch 方法高效地判断两个 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('两个列表没有相同元素.');
        }
    }
}

代码解释:

  1. 创建两个 ArrayList 列表:list1list2,并添加元素。
  2. 使用 stream 方法将 list1 转换为一个流。
  3. 使用 anyMatch 方法,在 list2 中检查是否存在与流中的任何元素匹配的元素。
  4. anyMatch 方法返回 true 如果找到匹配的元素,否则返回 false
  5. 根据 hasCommonElements 的值打印出相应的信息,以确定两个列表是否有相同的元素。

优势:

  • 利用 Java 8 的 Lambda 表达式和 Stream API 特性,简化代码并提高可读性。
  • 比使用 for 循环更高效。

注意:

  • 确保您的项目中使用的是 Java 8 或更高版本才能使用此方法。
Java 8 Stream 判断两个 List 是否有相同元素

原文地址: http://www.cveoy.top/t/topic/hAv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录