zoukankan      html  css  js  c++  java
  • lambda新特性,对两组集合中相同的数据去重

    集合一:
    List<ReplaceGoods> replaceGoodsList1=new ArrayList<>();
    ReplaceGoods ReplaceGood1=new ReplaceGoods();
    ReplaceGood1.setGoodsId(Long.valueOf(1111));
    replaceGoodsList1.add(ReplaceGood1);
    ReplaceGoods ReplaceGood2=new ReplaceGoods();
    ReplaceGood2.setGoodsId(Long.valueOf(2222));
    replaceGoodsList1.add(ReplaceGood2);



    集合二:
    List<ReplaceGoods> replaceGoodsList2=new ArrayList<>();
    ReplaceGoods ReplaceGood3=new ReplaceGoods();
    ReplaceGood3.setGoodsId(Long.valueOf(1111));
    replaceGoodsList2.add(ReplaceGood3);
    ReplaceGoods ReplaceGood4=new ReplaceGoods();
    ReplaceGood4.setGoodsId(Long.valueOf(3333));
    replaceGoodsList2.add(ReplaceGood4);



    //List去重 方法一
    for (ReplaceGoods aa:replaceGoodsList1) {
    replaceGoodsList2 = replaceGoodsList2.stream().distinct().collect(collectingAndThen(
    toCollection(() -> new TreeSet<>(Comparator.comparing(x->x.getGoodsId().equals(aa.getGoodsId())))), ArrayList::new));
    }
    System. out.print("去重后:");
    System. out.println(replaceGoodsList2);

    //List去重 方法二
    for (ReplaceGoods aa:replaceGoodsList1) {
    replaceGoodsList2.stream().forEach(s->{
    if(s.getGoodsId().equals(aa.getGoodsId()))
    replaceGoodsList1.remove(aa);
    });
    }
    System. out.print("去重后:");
    System. out.println(replaceGoodsList1);
  • 相关阅读:
    ThreadPoolExecutor线程池和ProcessPoolExecutor进程池
    canvas画一个时钟
    js中一些注意点 ps不断更新中....
    javascript文档节点
    Go网络编程
    Goroutine和Channel
    Go单元测试
    简单了解Go语言JSON包
    Go的命令行参数
    Go语言文件操作
  • 原文地址:https://www.cnblogs.com/gemiaomiao/p/12119457.html
Copyright © 2011-2022 走看看