Collection和Lambda电商数据处理实战需求说明
实战案例
- 电商订单数据处理,根据下面的 videoOrders1 和 videoOrders2 两个订单集合
- 统计出同时被两个人购买的商品列表(交集)8-2
- 统计出两个人购买商品的差集8-2
- 统计出全部被购买商品的去重并集8-2
- 统计两个人的分别购买订单的平均价格8-3
- 统计两个人的分别购买订单的总价格8-3
订单类
public class VideoOrder {
private String tradeNo;
private int money;
private String title;
public VideoOrder(String tradeNo,String title, int money ){
this.tradeNo = tradeNo;
this.title = title;
this.money = money;
}
public String getTradeNo() {
return tradeNo;
}
public void setTradeNo(String tradeNo) {
this.tradeNo = tradeNo;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public String toString() {
return "VideoOrder{" +
"title='" + title + '\'' +
'}';
}
@Override
public boolean equals(Object obj) {
if(obj instanceof VideoOrder) {
VideoOrder o1 = (VideoOrder)obj;
return title.equals(o1.getTitle());
}
return super.equals(obj);
}
@Override
public int hashCode() {
return title.hashCode();
}
}
订单数据
//总价 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));
8-2 ,8-3章节对以上需求实现
原文地址:https://www.yuque.com/haomingzi-kowv5/pmcs3t/lhn0y7