返回顶部
首页 > 资讯 > 精选 >Java8中怎么用Lambda遍历两个List匹配数据
  • 270
分享到

Java8中怎么用Lambda遍历两个List匹配数据

2023-06-29 09:06:46 270人浏览 安东尼
摘要

这篇“Java8中怎么用Lambda遍历两个List匹配数据”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java8中怎么用

这篇“Java8中怎么用Lambda遍历两个List匹配数据”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java8中怎么用Lambda遍历两个List匹配数据”文章吧。

    Lambda遍历两个List匹配数据

    1. 定义一个静态方法

        public static List<Map<Object, Object>> compareListHitData(List<Map<Object, Object>> oneList, List<Map<Object, Object>> twoList) {        List<Map<Object, Object>> resultList = oneList.stream().map(map -> twoList.stream()                .filter(m -> Objects.equals(m.get("id"), map.get("id")))                .findFirst().map(m -> {                    map.putAll(m);                    return map;                }).orElse(null))                .filter(Objects::nonNull).collect(Collectors.toList());        return resultList;    }

    2. Main方法测试

    public static void main(String[] args) {        List<Map<Object, Object>> oneList = new ArrayList<>();        Map<Object, Object> oneMap = new HashMap<>();        oneMap.put("id", 111);        oneMap.put("userName", "何金荣");        Map<Object, Object> twoMap = new HashMap<>();        twoMap.put("id", 222);        twoMap.put("userName", "Hejinrong");        oneList.add(oneMap);        oneList.add(twoMap);        List<Map<Object, Object>> twoList = new ArrayList<>();        Map<Object, Object> threeMap = new HashMap<>();        threeMap.put("id", 111);        threeMap.put("userName", "何金荣");        Map<Object, Object> fourMap = new HashMap<>();        fourMap.put("id", 333);        fourMap.put("userName", "Hejinrong");        twoList.add(threeMap);        twoList.add(fourMap);        List<Map<Object, Object>> resultList = compareListHitData(oneList, twoList);        System.out.println(resultList);    }

    3. 输出结果

    Java8中怎么用Lambda遍历两个List匹配数据

    jdk1.8的stream对两个List遍历匹配数据的处理

    import java.util.ArrayList;import java.util.List;import java.util.Objects;import java.util.stream.Collectors; public class testStream {    public static void main(String[] args) {        List<AwardInfo> prizeRecords = new ArrayList<AwardInfo>(6);        List<StockInfo> stockDTOList = new ArrayList<StockInfo>();        for (int i = 0; i < 6; i++) {            AwardInfo AwardInfo = new AwardInfo();            AwardInfo.setStockNo((i+1)+"");            prizeRecords.add(AwardInfo);        }        for (int i = 0; i < 3; i++) {            StockInfo stockDTO = new StockInfo();            stockDTO.setStockNo((i+1)+"");            stockDTO.setThirdStockNo("third"+(i+1));            stockDTOList.add(stockDTO);        }        StockInfo stockDTO1 = new StockInfo();        stockDTO1.setStockNo((44)+"");        stockDTO1.setThirdStockNo("third"+44);        stockDTOList.add(stockDTO1);         StockInfo stockDTO2 = new StockInfo();        stockDTO2.setStockNo((55)+"");        stockDTO2.setThirdStockNo("third"+55);        stockDTOList.add(stockDTO2);         //prizeRecords与stockDTOList求差集        List<AwardInfo> resultList1 = prizeRecords.stream()                .map(map -> stockDTOList.stream()                        .filter(m -> !Objects.equals(m.getStockNo(), map.getStockNo()))                        .findFirst().map(m -> {                            return map;                        }).orElse(null))                .filter(Objects::nonNull).collect(Collectors.toList());                System.out.println(resultList1.toString());                 List<AwardInfo> resultList2 = prizeRecords.stream().map(m->{            stockDTOList.stream().filter(m2->Objects.equals(m.getStockNo(), m2.getStockNo()))                    .forEach(s-> m.setThirdStockNo(s.getThirdStockNo()));            return m;        }).collect(Collectors.toList());                System.out.println(resultList2.toString());         List<AwardInfo> list3 = prizeRecords.stream()                .map(map -> stockDTOList.stream()                        .filter(m -> Objects.equals(m.getStockNo(), map.getStockNo()))                        .findFirst().map(m -> {                            map.setThirdStockNo(m.getThirdStockNo());                            return map;                        }).orElse(null))                .filter(Objects::nonNull).collect(Collectors.toList());                System.out.println(list3.toString());    }    static class StockInfo{        private String stockNo;        private String stockName;        private String thirdStockNo;         public String getStockNo() {            return stockNo;        }         public void setStockNo(String stockNo) {            this.stockNo = stockNo;        }         public String getStockName() {            return stockName;        }         public void setStockName(String stockName) {            this.stockName = stockName;        }         public String getThirdStockNo() {            return thirdStockNo;        }         public void setThirdStockNo(String thirdStockNo) {            this.thirdStockNo = thirdStockNo;        }         @Override        public String toString() {            return "StockInfo{" +                    "stockNo='" + stockNo + '\'' +                    ", stockName='" + stockName + '\'' +                    ", thirdStockNo='" + thirdStockNo + '\'' +                    '}';        }    }    static class AwardInfo{               private String userId;               private String stockNo;                private String thirdStockNo;         public String getUserId() {            return userId;        }         public void setUserId(String userId) {            this.userId = userId;        }         public String getStockNo() {            return stockNo;        }         public void setStockNo(String stockNo) {            this.stockNo = stockNo;        }         public String getThirdStockNo() {            return thirdStockNo;        }         public void setThirdStockNo(String thirdStockNo) {            this.thirdStockNo = thirdStockNo;        }         @Override        public String toString() {            return "AwardInfo{" +                    "userId='" + userId + '\'' +                    ", stockNo='" + stockNo + '\'' +                    ", thirdStockNo='" + thirdStockNo + '\'' +                    '}';        }    }}

    以上就是关于“Java8中怎么用Lambda遍历两个List匹配数据”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

    --结束END--

    本文标题: Java8中怎么用Lambda遍历两个List匹配数据

    本文链接: https://lsjlt.com/news/323813.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Java8中怎么用Lambda遍历两个List匹配数据
      这篇“Java8中怎么用Lambda遍历两个List匹配数据”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java8中怎么用...
      99+
      2023-06-29
    • Java8的Lambda遍历两个List匹配数据方式
      目录Lambda遍历两个List匹配数据1.定义一个静态方法2.Main方法测试3.输出结果jdk1.8的stream对两个List遍历匹配数据的处理Lambda遍历两个List匹配...
      99+
      2024-04-02
    • vlookup函数怎么匹配两列数据
      vlookup函数匹配两列数据的方法:1、确保两列数据分别位于两个不同的区域,例如列A和列B;2、在需要返回结果的单元格中,输入vlookup函数的公式,如=VLOOKUP(A2, B:C, 2, FALSE),FALSE表示精确匹配,如果...
      99+
      2023-08-07
    • vlookup函数怎么匹配两个条件
      这篇“vlookup函数怎么匹配两个条件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vlookup函数怎么匹配两个条件”文...
      99+
      2023-06-30
    • es6和js怎么匹配两个数组对象
      这篇文章主要介绍“es6和js怎么匹配两个数组对象”,在日常操作中,相信很多人在es6和js怎么匹配两个数组对象问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”es6和js怎么匹配两个数组对象”的疑惑有所帮助!...
      99+
      2023-06-29
    • 怎么用python匹配数据
      使用Python进行数据匹配可以使用正则表达式、字符串方法、列表推导式等方法。1. 使用正则表达式匹配数据:可以使用Python内置...
      99+
      2023-09-01
      python
    • python中的字典怎么遍历数据
      本篇内容介绍了“python中的字典怎么遍历数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明for循环遍历:使用for循环直接遍历字典...
      99+
      2023-06-20
    • mybatis怎么使用foreach遍历list集合或者array数组
      这篇文章主要介绍“mybatis怎么使用foreach遍历list集合或者array数组”,在日常操作中,相信很多人在mybatis怎么使用foreach遍历list集合或者array数组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
      99+
      2023-06-20
    • python怎么用lambda函数实现两个数相乘
      这篇文章给大家分享的是有关python怎么用lambda函数实现两个数相乘的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。用lambda函数实现两个数相乘python的数据类型有哪...
      99+
      2024-04-02
    • python怎么用循环遍历分离数据
      小编给大家分享一下python怎么用循环遍历分离数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python有哪些常用库python常用的库:1.requesu...
      99+
      2023-06-14
    • python用循环遍历怎么分离数据
      这篇文章主要讲解了“python用循环遍历怎么分离数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python用循环遍历怎么分离数据”吧!分离说明创建三个列表,分别用于存储。筛选出的重复数...
      99+
      2023-06-30
    • spring怎么配置两个数据源
      在Spring中配置两个数据源需要进行以下步骤:1. 添加两个数据源的配置文件(比如datasource1.properties和d...
      99+
      2023-10-18
      spring
    • 怎么在python中使用zip()函数遍历多个列表
      这篇文章将为大家详细讲解有关怎么在python中使用zip()函数遍历多个列表,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的优点有哪些1、简单易用,与C/C++、Java、C#...
      99+
      2023-06-14
    • Python怎么使用json数据键值对遍历
      Python对于json数据键值对遍历Python中可以使用json模块来解析JSON格式的数据,将其转换成Python中的字典或者列表对象。对于JSON数据中的键值对的遍历,我们可以通过Python中字典或者列表的遍历方式来实现。例如,对...
      99+
      2023-05-18
      Python JSON
    • 怎么在Python中使用Numpy遍历数组
      本篇文章给大家分享的是有关怎么在Python中使用Numpy遍历数组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python可以做什么Python是一种编程语言,内置了许多有...
      99+
      2023-06-14
    • TypeScript中怎么使用递归遍历并转换树形数据
      本篇内容介绍了“TypeScript中怎么使用递归遍历并转换树形数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
      99+
      2024-04-02
    • vue中数组遍历方法forEach和map怎么用
      这篇文章给大家分享的是有关vue中数组遍历方法forEach和map怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言forEach和map是数组的两个方法,作用都是遍...
      99+
      2024-04-02
    • 怎么在php中使用foreach循环遍历数组
      本篇文章为大家展示了怎么在php中使用foreach循环遍历数组,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最常用的开发环境。二、W...
      99+
      2023-06-14
    • 怎么在jQuery中使用map方法遍历数组
      怎么在jQuery中使用map方法遍历数组?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。jquery是什么jquery是一个简洁而快速的JavaScript库,它具有独特的链式...
      99+
      2023-06-14
    • 怎么在jquery中使用each方法遍历数组
      本篇文章为大家展示了怎么在jquery中使用each方法遍历数组,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。jquery是什么jquery是一个简洁而快速的JavaScript库,它具有独特的链式...
      99+
      2023-06-14
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作