欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java判斷兩個List<String>集合是否存在交集三種方法

 更新時間:2025年03月19日 10:11:48   作者:單線程bug  
這篇文章主要介紹了三種判斷Java中兩個List集合是否存在交集的方法,分別是使用retainAll方法、使用Stream和anyMatch以及使用Set提高性能,每種方法都有其適用場景和優(yōu)缺點,需要的朋友可以參考下

在 Java 中判斷兩個 List<String> 集合是否存在交集,可以使用以下幾種方法:

方法一:使用 retainAll 方法

retainAll 方法保留集合中與另一個集合相同的元素,如果集合發(fā)生變化,則表示存在交集。

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);

方法二:使用 Stream 和 anyMatch

使用 Java 8 的流操作更簡潔。

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 會更高效。

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);

選擇依據(jù)

  • retainAll 方法 簡單直接,但會修改原集合。
  • Stream 是函數(shù)式編程風(fēng)格,代碼更簡潔。
  • 使用 Set 避免了線性查找,適合大規(guī)模數(shù)據(jù)集合。

總結(jié) 

到此這篇關(guān)于java判斷兩個List<String>集合是否存在交集三種方法的文章就介紹到這了,更多相關(guān)java判斷List<String>集合交集內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實現(xiàn)的微信公眾號獲取微信用戶信息示例

    Java實現(xiàn)的微信公眾號獲取微信用戶信息示例

    這篇文章主要介紹了Java實現(xiàn)的微信公眾號獲取微信用戶信息,結(jié)合實例形式分析了Java微信公眾號獲取微信用戶信息相關(guān)原理、步驟與操作注意事項,需要的朋友可以參考下
    2019-10-10
  • SpringCloud Feign配置應(yīng)用詳細(xì)介紹

    SpringCloud Feign配置應(yīng)用詳細(xì)介紹

    這篇文章主要介紹了SpringCloud Feign配置應(yīng)用,feign是netflix提供的服務(wù)間基于http的rpc調(diào)用框架,在spring cloud得到廣泛應(yīng)用
    2022-09-09
  • SpringBoot定時任務(wù)的實現(xiàn)詳解

    SpringBoot定時任務(wù)的實現(xiàn)詳解

    這篇文章主要介紹了SpringBoot定時任務(wù)的實現(xiàn)詳解,定時任務(wù)是企業(yè)級開發(fā)中最常見的功能之一,如定時統(tǒng)計訂單數(shù)、數(shù)據(jù)庫備份、定時發(fā)送短信和郵件、定時統(tǒng)計博客訪客等,簡單的定時任務(wù)可以直接通過Spring中的@Scheduled注解來實現(xiàn),需要的朋友可以參考下
    2024-01-01
  • 解讀SpringBoot中addCorsMappings配置跨域與攔截器互斥問題的原因

    解讀SpringBoot中addCorsMappings配置跨域與攔截器互斥問題的原因

    這篇文章主要介紹了解讀SpringBoot中addCorsMappings配置跨域與攔截器互斥問題的原因,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 淺談SpringBoot2.4 配置文件加載機制大變化

    淺談SpringBoot2.4 配置文件加載機制大變化

    這篇文章主要介紹了淺談SpringBoot2.4 配置文件加載機制大變化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • java方法重載和參數(shù)類型自動提升方式

    java方法重載和參數(shù)類型自動提升方式

    這篇文章主要介紹了java方法重載和參數(shù)類型自動提升方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 基于Springboot疫苗接種行程管理系統(tǒng)的設(shè)計與實現(xiàn)

    基于Springboot疫苗接種行程管理系統(tǒng)的設(shè)計與實現(xiàn)

    本文主要介紹了基于Springboot實現(xiàn)的疫苗接種行程管理系統(tǒng)的示例代碼,系統(tǒng)主要實現(xiàn)個人疫苗接種管理、行程管理、病史管理、風(fēng)險地區(qū)管理、核酸檢測報告結(jié)果上報、疫情新聞管理等功能,需要的可以參考一下
    2022-03-03
  • java項目導(dǎo)出為.exe執(zhí)行文件的方法步驟

    java項目導(dǎo)出為.exe執(zhí)行文件的方法步驟

    最近做了個項目,想要轉(zhuǎn)換成可執(zhí)行文件,那么java項目如何導(dǎo)出為.exe執(zhí)行文件,本文就介紹一下,主要使用jar2exe軟件,感興趣的可以了解一下
    2021-05-05
  • 配置java.library.path加載庫文件問題

    配置java.library.path加載庫文件問題

    這篇文章主要介紹了配置java.library.path加載庫文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Spring mvc Json處理實現(xiàn)流程代碼實例

    Spring mvc Json處理實現(xiàn)流程代碼實例

    這篇文章主要介紹了Spring mvc Json處理實現(xiàn)流程代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09

最新評論