最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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 多線程實例講解(一)

    Java 多線程實例講解(一)

    本文主要介紹Java 多線程的知識,這里整理了詳細(xì)的資料及簡單示例代碼有需要的小伙伴可以參考下
    2016-09-09
  • java數(shù)據(jù)結(jié)構(gòu)與算法之noDups去除重復(fù)項算法示例

    java數(shù)據(jù)結(jié)構(gòu)與算法之noDups去除重復(fù)項算法示例

    這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之noDups去除重復(fù)項算法實現(xiàn)技巧,程序代碼非常簡單,關(guān)鍵在于循環(huán)與判定,需要的朋友可以參考下
    2016-08-08
  • 23種設(shè)計模式(17)java命令模式

    23種設(shè)計模式(17)java命令模式

    這篇文章主要為大家詳細(xì)介紹了23種設(shè)計模式之java命令模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • SpringBoot MainApplication類文件的位置詳解

    SpringBoot MainApplication類文件的位置詳解

    這篇文章主要介紹了SpringBoot MainApplication類文件的位置詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java全面細(xì)致講解類與對象

    Java全面細(xì)致講解類與對象

    類和對象是兩種以計算機為載體的計算機語言的合稱。對象是對客觀事物的抽象,類是對對象的抽象。類是一種抽象的數(shù)據(jù)類型;變量就是可以變化的量,存儲在內(nèi)存中—個可以擁有在某個范圍內(nèi)的可變存儲區(qū)域
    2022-05-05
  • Java 多用戶登錄限制的實現(xiàn)方法

    Java 多用戶登錄限制的實現(xiàn)方法

    最近沒有事情做,閑的發(fā)呆,于是寫個東東練練手。這篇文章主要介紹了Java 多用戶登錄限制的實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Spring Kafka中@KafkaListener注解的參數(shù)與使用小結(jié)

    Spring Kafka中@KafkaListener注解的參數(shù)與使用小結(jié)

    @KafkaListener注解為開發(fā)者提供了一種聲明式的方式來定義消息監(jiān)聽器,本文主要介紹了Spring Kafka中@KafkaListener注解的參數(shù)與使用小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • Java 8中字符串拼接新姿勢StringJoiner詳解

    Java 8中字符串拼接新姿勢StringJoiner詳解

    在本篇文章里小編給大家整理了關(guān)于Java 8中字符串拼接新姿勢StringJoiner的詳解內(nèi)容,需要的朋友們參考下。
    2019-09-09
  • java基礎(chǔ)--JDK SPI概述

    java基礎(chǔ)--JDK SPI概述

    SPI是一種服務(wù)發(fā)現(xiàn)機制,本文就SPI做了詳細(xì)概述,具有很好的參考價值,希望對小伙伴們有所幫助,感興趣的朋友一起來參考參考吧
    2021-08-08
  • Lombok注解之@SuperBuilder--解決無法builder父類屬性問題

    Lombok注解之@SuperBuilder--解決無法builder父類屬性問題

    這篇文章主要介紹了Lombok注解之@SuperBuilder--解決無法builder父類屬性問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論

绥棱县| 越西县| 伊川县| 灌阳县| 吴堡县| 阿荣旗| 镶黄旗| 凤冈县| 云林县| 张北县| 博客| 兴山县| 澎湖县| 甘德县| 赣榆县| 许昌市| 襄汾县| 诸城市| 长沙县| 图们市| 铅山县| 龙岩市| 玉树县| 锡林浩特市| 新疆| 沐川县| 泸溪县| 龙海市| 荣昌县| 怀宁县| 富民县| 邢台县| 陈巴尔虎旗| 仁化县| 仙游县| 馆陶县| 霍山县| 厦门市| 泗洪县| 广丰县| 元氏县|