欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java8處理List的雙層循環(huán)問題

 更新時間:2020年08月18日 14:36:51   作者:航海到IT的轉(zhuǎn)變,夢想一直在路上  
這篇文章主要介紹了Java8處理List的雙層循環(huán)問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Java處理List的雙層循環(huán)程序員經(jīng)常遇到,一般都是當(dāng)兩個List某個值滿足某條件時候,進行相應(yīng)的處理;

1.list和map之間的相互轉(zhuǎn)換

/**
 * 兩個List對象當(dāng)id相同的時候(注意是兩個對象,而非兩個集合)
 * @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ù)方法的使用

//蘋果顏色對應(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();

補充知識:java8新技術(shù):數(shù)據(jù)流式處理之兩個list集合多對多遍歷關(guān)聯(lián)

自用測試方法

說明一下:list1和list2兩個集合進行匹配,將list2中的對應(yīng)的值取出,使list1中的每條數(shù)據(jù)都有對應(yīng)的list2中的name值,list1為主集合,數(shù)據(jù)需全部展示;

注意:若list1的數(shù)量多于list2,并且數(shù)據(jù)匹配不上,則多出來的會在list3中為null;

以上這篇Java8處理List的雙層循環(huán)問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java中ArrayList的兩種排序方法實例

    java中ArrayList的兩種排序方法實例

    ArrayList是一個數(shù)組隊列,相當(dāng)于 動態(tài)數(shù)組,與Java中的數(shù)組相比,它的容量能動態(tài)增長,這篇文章主要給大家介紹了關(guān)于java中ArrayList的兩種排序方法,需要的朋友可以參考下
    2021-07-07
  • IntelliJ IDEA JRebel 安裝使用圖文教程(熱部署插件)

    IntelliJ IDEA JRebel 安裝使用圖文教程(熱部署插件)

    IDEA 全稱 IntelliJ IDEA,是java語言開發(fā)的集成環(huán)境,IntelliJ在業(yè)界被公認(rèn)為最好的java開發(fā)工具之一。這篇文章主要介紹了IntelliJ IDEA 熱部署插件JRebel 安裝使用圖文教程,需要的朋友可以參考下
    2018-03-03
  • spring boot 配置Filter過濾器的方法

    spring boot 配置Filter過濾器的方法

    本篇文章主要介紹了spring boot 配置Filter過濾器的方法,實例分析了spring boot 配置Filter過濾器的技巧,有興趣的可以了解一下。
    2017-03-03
  • 帶有@Transactional和@Async的循環(huán)依賴問題的解決

    帶有@Transactional和@Async的循環(huán)依賴問題的解決

    這篇文章主要介紹了帶有@Transactional和@Async的循環(huán)依賴問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • dubbo服務(wù)鏈路跟蹤方式

    dubbo服務(wù)鏈路跟蹤方式

    這篇文章主要介紹了dubbo服務(wù)鏈路跟蹤方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Spring Boot Web應(yīng)用程序配置詳解

    Spring Boot Web應(yīng)用程序配置詳解

    這篇文章主要介紹了Spring Boot Web應(yīng)用程序配置詳解,本文中將介紹一些Web應(yīng)用程序最常用的配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • java 迭代器模式實例詳解

    java 迭代器模式實例詳解

    這篇文章主要介紹了java 迭代器模式實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • SpringBoot整合mybatisplus和druid的示例詳解

    SpringBoot整合mybatisplus和druid的示例詳解

    這篇文章主要介紹了SpringBoot整合mybatisplus和druid的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • MyBatis-Plus 快速入門案例(小白教程)

    MyBatis-Plus 快速入門案例(小白教程)

    這篇文章主要介紹了MyBatis-Plus 快速入門案例(小白教程),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java8中Stream的一些神操作

    Java8中Stream的一些神操作

    Stream是Java8中處理集合的關(guān)鍵抽象概念,它可以指定你希望對集合進行的操作,可以執(zhí)行非常復(fù)雜的查找、過濾和映射數(shù)據(jù)等操作,這篇文章主要給大家介紹了Java8中Stream的一些神操作,需要的朋友可以參考下
    2021-11-11

最新評論