java獲取兩個List集合的交集代碼示例
獲取兩個List集合的交集
可以使用Java中的retainAll方法來獲取兩個List的交集:
假設(shè)有兩個List類型的集合list1和list2,代碼如下:
List<String> list1 = new ArrayList<>();
list1.add("apple");
list1.add("banana");
list1.add("orange");
List<String> list2 = new ArrayList<>();
list2.add("banana");
list2.add("orange");
list2.add("watermelon");
下面是獲取兩個集合的交集的代碼:
List<String> intersection = new ArrayList<>(list1); intersection.retainAll(list2); System.out.println(intersection);
輸出結(jié)果為:
[banana, orange]
其中,retainAll方法會修改intersection集合,使其只包含兩個集合的交集。在這個例子中,intersection集合最初是包含list1集合的元素的,然后通過retainAll方法過濾掉不屬于list2集合的元素,最終得到兩個集合的交集。
附:java中兩個list對象取交集、差集
在一般操作中,對于list集合取交集、差集、并集,比較簡單,網(wǎng)上有很多例子,如:

今天我們來說一下對于兩個list集合該如何取交集與并集:
如下兩個集合:groupEntityList、saveEntities,groupEntityList是組織集合,saveEntities是組織用戶集合,即saveEntities包含groupEntityList中的數(shù)據(jù)。
交集:
private List<SysOrgUserRefModel> colationOrgUserData(List<SysOrgUserRefModel> saveEntities,List<WFGroupEntity> groupEntityList){
// 拿出組織集合中的組織id集合
List<String> groupList = groupEntityList.stream().map(WFGroupEntity::getId).collect(Collectors.toList());
// 根據(jù)組織用戶中的組織id與組織id集合比對,取相同的數(shù)據(jù)
saveEntities = saveEntities.stream().filter(entity -> groupList.contains(CandidateDTO.newPostStr(entity.getOrgId()))).collect(Collectors.toList());
return saveEntities;
}差集:saveEntities - groupEntityList
private List<SysOrgUserRefModel> colationOrgUserData(List<SysOrgUserRefModel> saveEntities,List<WFGroupEntity> groupEntityList){
// 拿出組織集合中的組織id集合
List<String> groupList = groupEntityList.stream().map(WFGroupEntity::getId).collect(Collectors.toList());
// 根據(jù)組織用戶中的組織id與組織id集合比對,取相同的數(shù)據(jù)
saveEntities = saveEntities.stream().filter(entity -> !groupList.contains(CandidateDTO.newPostStr(entity.getOrgId()))).collect(Collectors.toList());
return saveEntities;
}表達式中誰在前,誰就是減數(shù)。
總結(jié)
到此這篇關(guān)于java獲取兩個List集合的交集的文章就介紹到這了,更多相關(guān)java獲取List集合交集內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springBoot集成Elasticsearch 報錯 Health check failed的解決
這篇文章主要介紹了springBoot集成Elasticsearch 報錯 Health check failed的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
mybatis參數(shù)類型不匹配錯誤argument type mismatch的處理方案
這篇文章主要介紹了mybatis參數(shù)類型不匹配錯誤argument type mismatch的處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Gradle build 報錯:Received status code 400 from server
這篇文章主要介紹了Gradle build 報錯:Received status code 400 from server,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

