iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >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://www.lsjlt.com/news/323813.html(转载时请注明来源链接)

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

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • 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+
      2022-11-13
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作