JDK8新特性处理电商订单数据之答案讲解上集

JDK8新特性处理电商订单数据之答案讲解上集

案例

  • 统计出同时被两个人购买的商品列表(交集)
public class Main {
    public static void main(String[] args) {
        //总价 35
        List<VideoOrder> videoOrders1 = Arrays.asList(
                new VideoOrder("20190242812", "springboot教程", 3),
                new VideoOrder("20194350812", "微服务SpringCloud", 5),
                new VideoOrder("20190814232", "Redis教程", 9),
                new VideoOrder("20190523812", "网页开发教程", 9),
                new VideoOrder("201932324", "百万并发实战Netty", 9));

        //总价 54
        List<VideoOrder> videoOrders2 = Arrays.asList(
                new VideoOrder("2019024285312", "springboot教程", 3),
                new VideoOrder("2019081453232", "Redis教程", 9),
                new VideoOrder("20190522338312", "网页开发教程", 9),
                new VideoOrder("2019435230812", "Jmeter压力测试", 5),
                new VideoOrder("2019323542411", "Git+Jenkins持续集成", 7),
                new VideoOrder("2019323542424", "Idea全套教程", 21));
        
        // 交集
        List<VideoOrder> intersectionList = videoOrders1.stream().
            								filter(obj -> videoOrders2.contains(obj)).collect(Collectors.toList());
        // [VideoOrder{title='springboot教程'}, VideoOrder{title='Redis教程'}, VideoOrder{title='网页开发教程'}]
        System.out.println(intersectionList);
    }
}
  • 统计出两个人购买商品的差集
public class Main {
    public static void main(String[] args) {
        //总价 35
        List<VideoOrder> videoOrders1 = Arrays.asList(
                new VideoOrder("20190242812", "springboot教程", 3),
                new VideoOrder("20194350812", "微服务SpringCloud", 5),
                new VideoOrder("20190814232", "Redis教程", 9),
                new VideoOrder("20190523812", "网页开发教程", 9),
                new VideoOrder("201932324", "百万并发实战Netty", 9));

        //总价 54
        List<VideoOrder> videoOrders2 = Arrays.asList(
                new VideoOrder("2019024285312", "springboot教程", 3),
                new VideoOrder("2019081453232", "Redis教程", 9),
                new VideoOrder("20190522338312", "网页开发教程", 9),
                new VideoOrder("2019435230812", "Jmeter压力测试", 5),
                new VideoOrder("2019323542411", "Git+Jenkins持续集成", 7),
                new VideoOrder("2019323542424", "Idea全套教程", 21));
        
        // 订单一和订单二 差集
        List<VideoOrder> differenceList1 = videoOrders1.stream()
                .filter(obj -> !videoOrders2.contains(obj)).collect(Collectors.toList());
        // [VideoOrder{title='微服务SpringCloud'}, VideoOrder{title='百万并发实战Netty'}]
        System.out.println(differenceList1);

        // 订单二和订单一 差集
        List<VideoOrder> differenceList2 = videoOrders2.stream()
                .filter(obj -> !videoOrders1.contains(obj)).collect(Collectors.toList());
        // [VideoOrder{title='Jmeter压力测试'}, VideoOrder{title='Git+Jenkins持续集成'}, VideoOrder{title='Idea全套教程'}]
        System.out.println(differenceList2);
    }
}
  • 统计出全部被购买商品的去重并集
public class Main {
    public static void main(String[] args) {
        //总价 35
        List<VideoOrder> videoOrders1 = Arrays.asList(
                new VideoOrder("20190242812", "springboot教程", 3),
                new VideoOrder("20194350812", "微服务SpringCloud", 5),
                new VideoOrder("20190814232", "Redis教程", 9),
                new VideoOrder("20190523812", "网页开发教程", 9),
                new VideoOrder("201932324", "百万并发实战Netty", 9));

        //总价 54
        List<VideoOrder> videoOrders2 = Arrays.asList(
                new VideoOrder("2019024285312", "springboot教程", 3),
                new VideoOrder("2019081453232", "Redis教程", 9),
                new VideoOrder("20190522338312", "网页开发教程", 9),
                new VideoOrder("2019435230812", "Jmeter压力测试", 5),
                new VideoOrder("2019323542411", "Git+Jenkins持续集成", 7),
                new VideoOrder("2019323542424", "Idea全套教程", 21));
        
        // 去重复并集
        //     1、拿到并集 list
        List<VideoOrder> list = videoOrders1.stream().parallel().collect(Collectors.toList());
        list.addAll(videoOrders2);
        //     2、去重复
        List<VideoOrder> resultList = list.stream().distinct().collect(Collectors.toList());
        //[VideoOrder{title='springboot教程'}, VideoOrder{title='微服务SpringCloud'}, 
        // VideoOrder{title='Redis教程'}, VideoOrder{title='网页开发教程'}, VideoOrder{title='百万并发实战Netty'},
        // VideoOrder{title='Jmeter压力测试'}, VideoOrder{title='Git+Jenkins持续集成'}, VideoOrder{title='Idea全套教程'}]
        System.out.println(resultList);
    }
}

原文地址:https://www.yuque.com/haomingzi-kowv5/pmcs3t/dsoyvh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值