java 如何判断两个List<String>集合是否存在交集

devtools/2025/1/17 2:22:43/

在 Java 中判断两个 List<String> 集合是否存在交集,可以使用以下几种方法:

方法一:使用 retainAll 方法

retainAll 方法保留集合中与另一个集合相同的元素,如果集合发生变化,则表示存在交集。

java">List<String> list1 = Arrays.asList("a", "b", "c");
List<String> list2 = Arrays.asList("c", "d", "e");List<String> temp = new ArrayList<>(list1);
boolean hasIntersection = temp.retainAll(list2);  // 返回 true 表示存在交集System.out.println("是否存在交集:" + hasIntersection);

方法二:使用 StreamanyMatch

使用 Java 8 的流操作更简洁。

java">List<String> list1 = Arrays.asList("a", "b", "c");
List<String> list2 = Arrays.asList("c", "d", "e");boolean hasIntersection = list1.stream().anyMatch(list2::contains);
System.out.println("是否存在交集:" + hasIntersection);

方法三:使用 Set 提高性能

如果集合较大,使用 Set 会更高效。

java">List<String> list1 = Arrays.asList("a", "b", "c");
List<String> list2 = Arrays.asList("c", "d", "e");Set<String> set = new HashSet<>(list1);
boolean hasIntersection = list2.stream().anyMatch(set::contains);System.out.println("是否存在交集:" + hasIntersection);

选择依据

  • retainAll 方法 简单直接,但会修改原集合。
  • Stream 是函数式编程风格,代码更简洁。
  • 使用 Set 避免了线性查找,适合大规模数据集合。

http://www.ppmy.cn/devtools/151143.html

相关文章

【计算机视觉】超简单!插值算法经典案例

Hey小伙伴们&#xff01;今天来给大家分享一个 计算机视觉 中非常基础但又超级重要的技术——插值算法。插值在图像处理中扮演着至关重要的角色&#xff0c;尤其是在图像缩放、旋转、变形等操作时。通过插值算法&#xff0c;我们可以在不失真的情况下调整图像的大小或形状。 如…

MySQL 排除指定时间内重复记录的解决方案

MySQL 排除指定时间内重复记录的解决方案 在实际的数据库操作中,我们经常需要排除时间间隔小于一定范围(例如 5 分钟)的重复记录。本文总结了几种实现这一需求的 MySQL 解决方案。 表结构 假设我们有一张记录数据的表 event_logs,其结构如下: CREATE TABLE event_logs…

Unity 3D游戏开发从入门进阶到高级

本文精心整理了Unity3D游戏开发相关的学习资料&#xff0c;涵盖入门、进阶、性能优化、面试和书籍等多个维度&#xff0c;旨在为Unity开发者提供全方位、高含金量的学习指南.欢迎收藏。 学习社区 Unity3D开发者 这是一个专注于Unity引擎的开发者社区&#xff0c;汇聚了众多Un…

HTML5 加载动画(Loading Animation)

加载动画&#xff08;Loading Animation&#xff09;详解 概述 加载动画是指在数据加载过程中&#xff0c;向用户展示的一种视觉效果&#xff0c;旨在提升用户体验&#xff0c;告知用户系统正在处理请求。它可以减少用户的等待焦虑感&#xff0c;提高界面的互动性。 常见的加…

JVM之垃圾回收器ZGC概述以及垃圾回收器总结的详细解析

ZGC ZGC 收集器是一个可伸缩的、低延迟的垃圾收集器&#xff0c;基于 Region 内存布局的&#xff0c;不设分代&#xff0c;使用了读屏障、染色指针和内存多重映射等技术来实现可并发的标记压缩算法 在 CMS 和 G1 中都用到了写屏障&#xff0c;而 ZGC 用到了读屏障 染色指针&a…

洛谷P2404 自然数的拆分问题 刷题笔记 DFS

题目链接https://www.luogu.com.cn/problem/P2404 一道深搜问题 注意观察答案的特点 得出判断合法答案的条件如何表述 观察答案特点 后面的数要比前面的数大 因此我们要加入一些判断 来保证答案合法 逐个数字进行拆分 用数组存答案 如果一个数是奇数 分解成两个数相加…

C/C++中,const、static关键字有什么作用,如何定义、初始化,什么情形下需要用到这两关键字?

在C和C编程中&#xff0c;const和static是两个非常重要的关键字&#xff0c;它们各自有独特的作用和使用场景。下面分别介绍这两个关键字的作用、定义和初始化方法&#xff0c;以及何时需要使用它们。 const 关键字 作用 const关键字用于声明一个变量为常量&#xff0c;即该…

华为2024嵌入式研发面试题

01 你认为最好的排序算法是什么&#xff1f; 在实际的编程中&#xff0c;最好的排序算法要根据实际需求和数据规模来选择&#xff0c;因为每种排序算法都有其优势和劣势。以下是一些常见排序算法及其优缺点&#xff1a; 冒泡排序 冒泡排序是一种简单直观的排序算法&#xff0…