Java8處理List的雙層循環(huán)問題
Java處理List的雙層循環(huán)程序員經(jīng)常遇到,一般都是當(dāng)兩個(gè)List某個(gè)值滿足某條件時(shí)候,進(jìn)行相應(yīng)的處理;
1.list和map之間的相互轉(zhuǎn)換
/**
* 兩個(gè)List對(duì)象當(dāng)id相同的時(shí)候(注意是兩個(gè)對(duì)象,而非兩個(gè)集合)
* @param husbands
* @param wives
*/
private static void test8(List<Husband> husbands, List<Wife> wives) {
List<Family> families = Lists.newArrayList();
//將wives轉(zhuǎn)換為map,這里的key一定要唯一,即為familyId
Map<Integer, Wife> wifeMap = wives.stream().collect(toMap(w -> w.getFamilyId(), w -> w));
families = husbands.stream().map(husband -> {
Family family = new Family();
Wife wife = wifeMap.get(husband.getFamilyId());
family.setFamilyId(wife.getFamilyId());
family.setHusbandName(husband.getHusbandName());
family.setWifeName(husband.getWifename());
return family;
}).collect(Collectors.toList());
}
2.java8中的
groupingBy
counting
mapToDouble
filter
sum等函數(shù)方法的使用
//蘋果顏色對(duì)應(yīng)的數(shù)量 Map<String, Long> collect = appleVos.stream().collect(groupingBy(AppleVo::getColor, counting())); // 過濾掉顏色為黑色的蘋果,并匯總好蘋果的總金額 Double sum = appleVos.stream().filter(i -> "black".equals(i.getColor())).mapToDouble(AppleVo::getPrice).sum();
補(bǔ)充知識(shí):java8新技術(shù):數(shù)據(jù)流式處理之兩個(gè)list集合多對(duì)多遍歷關(guān)聯(lián)
自用測(cè)試方法

說(shuō)明一下:list1和list2兩個(gè)集合進(jìn)行匹配,將list2中的對(duì)應(yīng)的值取出,使list1中的每條數(shù)據(jù)都有對(duì)應(yīng)的list2中的name值,list1為主集合,數(shù)據(jù)需全部展示;
注意:若list1的數(shù)量多于list2,并且數(shù)據(jù)匹配不上,則多出來(lái)的會(huì)在list3中為null;
以上這篇Java8處理List的雙層循環(huán)問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot實(shí)現(xiàn)發(fā)送QQ郵件的示例代碼
這篇文章主要介紹了SpringBoot如何實(shí)現(xiàn)發(fā)送QQ郵件功能,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
使用Stargate訪問K8ssandra的過程之Springboot整合Cassandra
這篇文章主要介紹了使用Stargate訪問K8ssandra的過程之Springboot整合Cassandra,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
Eclipse下基于Java的OpenCV開發(fā)環(huán)境配置教程
這篇文章主要為大家詳細(xì)介紹了Eclipse下基于Java的OpenCV開發(fā)環(huán)境配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
MyBatis查詢結(jié)果resultType返回值類型的說(shuō)明
這篇文章主要介紹了MyBatis查詢結(jié)果resultType返回值類型的說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-11-11
Eclipse中使用Maven創(chuàng)建Java Web工程的實(shí)現(xiàn)方式
這篇文章主要介紹了Eclipse中使用Maven創(chuàng)建Java Web工程的實(shí)現(xiàn)方式的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的方式,需要的朋友可以參考下2017-10-10
mybatis-plus saveOrUpdateBatch踩坑記錄
這篇文章主要介紹了mybatis-plus saveOrUpdateBatch踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12

