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)文章
SpringCloud Feign配置應(yīng)用詳細(xì)介紹
這篇文章主要介紹了SpringCloud Feign配置應(yīng)用,feign是netflix提供的服務(wù)間基于http的rpc調(diào)用框架,在spring cloud得到廣泛應(yīng)用2022-09-09解讀SpringBoot中addCorsMappings配置跨域與攔截器互斥問題的原因
這篇文章主要介紹了解讀SpringBoot中addCorsMappings配置跨域與攔截器互斥問題的原因,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12基于Springboot疫苗接種行程管理系統(tǒng)的設(shè)計與實現(xiàn)
本文主要介紹了基于Springboot實現(xiàn)的疫苗接種行程管理系統(tǒng)的示例代碼,系統(tǒng)主要實現(xiàn)個人疫苗接種管理、行程管理、病史管理、風(fēng)險地區(qū)管理、核酸檢測報告結(jié)果上報、疫情新聞管理等功能,需要的可以參考一下2022-03-03java項目導(dǎo)出為.exe執(zhí)行文件的方法步驟
最近做了個項目,想要轉(zhuǎn)換成可執(zhí)行文件,那么java項目如何導(dǎo)出為.exe執(zhí)行文件,本文就介紹一下,主要使用jar2exe軟件,感興趣的可以了解一下2021-05-05Spring mvc Json處理實現(xiàn)流程代碼實例
這篇文章主要介紹了Spring mvc Json處理實現(xiàn)流程代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09