MapReduce是一种分布式计算模型,最初由Google提出,主要用于搜索领域,解决海量数据的计算问题,在MapReduce模型中一共分为两个部分:map(数据处理)和reduce(统计计算),在Stream中就可以利用MapReduce队集合中的数据进行分析;
一个简单对象:
public class Order {
private String name;
private double price;
private int num;
public Order(String name, double price, int num) {
this.name = name;
this.price = price;
this.num = num;
}
Set,Get....
package com.cn;
import java.util.ArrayList;
import java.util.DoubleSummaryStatistics;
import java.util.List;
/**
* @Authro: QYF
* @Time:2020/9/20 23:26
*/
public class MapReduce {
public static void main(String[] args) {
//用一个集合添加数据
List<Order> list = new ArrayList<>();
list.add(new Order("薯片A",8.8,15));
list.add(new Order("饼干A",18.5,10));
list.add(new Order("糖果A",25.2,6));
list.add(new Order("牛奶B",45.8,28));
list.add(new Order("面包A",5.5,22));
list.add(new Order("可乐B",3.5,8));
//分析名字中带有A的数据信息
DoubleSummaryStatistics filter = list.stream().filter((a) -> a.getName().contains("A"))
//获取统计对象,进行商品单价和数量的处理,
.mapToDouble((b) -> b.getPrice() * b.getNum()).summaryStatistics();
System.out.println("销售数量:"+filter.getCount());
System.out.println("总销售额:"+filter.getSum());
System.out.println("平均销售额:"+filter.getAverage());
System.out.println("最高销售额:"+filter.getMax());
System.out.println("最低销售额:"+filter.getMin());
}
}
输出:
销售数量:4
总销售额:589.2
平均销售额:147.3
最高销售额:185.0
最低销售额:121.0