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

news/2025/1/13 6:20:44/

在 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/news/1562737.html

相关文章

后端开发 Springboot整合Redis Spring Data Redis 模板

目录 redis 配置 RedisConfig 类 完整代码 代码讲解 1. 类定义和注解 2. 定义 RedisTemplate Bean 3. 配置 JSON 序列化 4. 配置 Redis 的 key 和 value 序列化方式 5. 完成配置并返回 RedisTemplate 总结 redis 服务接口实现类 类级别 注入 RedisTemplate 常用 Re…

《盘古大模型——鸿蒙NEXT的智慧引擎》

在当今科技飞速发展的时代&#xff0c;华为HarmonyOS NEXT的发布无疑是操作系统领域的一颗重磅炸弹&#xff0c;其将人工智能与操作系统深度融合&#xff0c;开启了智能新时代。而盘古大模型在其中发挥着至关重要的核心作用。 赋予小艺智能助手超强能力 在鸿蒙NEXT中&#xf…

探索AGI:智能助手与自我赋能的新时代

目录 1 AGI1.1 DeepMind Levels&#xff08;2023年11月)1.2 OpenAI Levels&#xff08;2024年7月&#xff09;1.3 对比与总结1.4 AGI可能诞生哪里 2 基于AI的智能自动化助手2.1 通用型大模型2.2 专业的Agent和模型工具开发框架2.3 编程与代码生成助手2.4 视频和多模态生成2.5 商…

Web基础-分层解耦-三层架构

1.Q&#xff1a;为什么要分层解耦&#xff1f; 如果把所有的业务逻辑都写在一个代码段里&#xff0c;会导致代码复用性差且难以维护。 2&#xff1a;分层解耦要满足什么原则以及每一层要完成什么功能&#xff1f; 单一职责原则&#xff1a;每一模块的代码只负责自己模块的功能…

2025年华数杯国际赛B题论文首发+代码开源 数据分享+代码运行教学

176项指标数据库 任意组合 千种组合方式 14页纯图 无水印可视化 63页无附录正文 3万字 1、为了方便大家阅读&#xff0c;全文使用中文进行描述&#xff0c;最终版本需自行翻译为英文。 2、文中图形、结论文字描述均为ai写作&#xff0c;可自行将自己的结果发给ai&#xff0c…

基类指针指向派生类对象,基类指针的首地址永远指向子类从基类继承的基类首地址

文章目录 基类指针指向派生类对象&#xff0c;基类指针的首地址永远指向子类从基类继承的基类起始地址。代码代码2 基类指针指向派生类对象&#xff0c;基类指针的首地址永远指向子类从基类继承的基类起始地址。 代码 #include <iostream> using namespace std;class b…

机器学习算法(二): 朴素贝叶斯(Naive Bayes)

1. 实验室介绍 1.1 实验环境 1. python3.7 2. numpy > 1.16.4 3. sklearn > 0.23.1 1.2 朴素贝叶斯的介绍 朴素贝叶斯算法&#xff08;Naive Bayes, NB) 是应用最为广泛的分类算法之一。它是基于贝叶斯定义和特征条件独立假设的分类器方法。由于朴素贝叶斯法基于贝叶…

Ruby语言的软件开发工具

Ruby语言的软件开发工具探索 Ruby语言以其简洁优雅的语法和强大的面向对象特性而受到广泛欢迎。作为一种动态、反射性强的编程语言&#xff0c;Ruby具有很高的开发效率&#xff0c;适用于各种类型的开发&#xff0c;从Web应用到命令行工具&#xff0c;都能得到很好的支持。在R…