java判斷兩個List<String>集合是否存在交集三種方法
在 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數(shù)據(jù)結(jié)構(gòu)與算法之noDups去除重復(fù)項算法示例
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之noDups去除重復(fù)項算法實現(xiàn)技巧,程序代碼非常簡單,關(guān)鍵在于循環(huán)與判定,需要的朋友可以參考下2016-08-08
SpringBoot MainApplication類文件的位置詳解
這篇文章主要介紹了SpringBoot MainApplication類文件的位置詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Spring Kafka中@KafkaListener注解的參數(shù)與使用小結(jié)
@KafkaListener注解為開發(fā)者提供了一種聲明式的方式來定義消息監(jiān)聽器,本文主要介紹了Spring Kafka中@KafkaListener注解的參數(shù)與使用小結(jié),具有一定的參考價值,感興趣的可以了解一下2024-06-06
Lombok注解之@SuperBuilder--解決無法builder父類屬性問題
這篇文章主要介紹了Lombok注解之@SuperBuilder--解決無法builder父類屬性問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09

