简介:
数据分析中一个最重要的基础模型:MapReduce;
MapReduce分为两个部分:Map数据处理和Reduce数据分析;
在进行数据分析之前必须进行合理的处理,再进行数据分析。
import java.util.ArrayList;
import java.util.DoubleSummaryStatistics;
import java.util.List;
public class MAIN {
public static void main(String[] args) {
// 如果要想使用Stream进行数据分析则一定要将分析的数据保存在集合之中
List<Order> all = new ArrayList<Order>();
all.add(new Order("芭比娃娃",30,1));
all.add(new Order("小狗玩偶",12,2));
all.add(new Order("小猫玩偶",21,4));
all.add(new Order("飞天小鹿",15,5));
DoubleSummaryStatistics sum = all.stream().filter((ele)->
ele.getName().contains("小")).mapToDouble((orderObj)->
orderObj.getPrice() * orderObj.getAmount()).summaryStatistics(); // 带"小"字的信息,filter()方法是一种信息过滤操作,summaryStatistics()方法是进行汇总
System.out.println("购买数量:" + sum.getCount()); // 这里的数量是购买了多少种商品
System.out.println("购买总价:" + sum.getSum()); // 这几种商品的总价
System.out.println("平均花费:" + sum.getAverage()); // 这里的平均花费是购买每一种商品的均价
System.out.println("最高花费:" + sum.getMax()); // 这几种商品中单个商品的总价最高
System.out.println("最低花费:" + sum.getMin()); // 这几种商品中单个商品的总价最低
}
}
class Order { // 订单信息
private String name; // 商品名称
private double price; // 商品价格
private int amount; // 商品数量
public Order(String name, double price, int amount) {
this.name = name;
this.price = price;
this.amount = amount;
}
public Order() {
}
/**
* @return name
*/
public String getName() {
return name;
}
/**
* @param name 要设置的 name
*/
public void setName(String name) {
this.name = name;
}
/**
* @return price
*/
public double getPrice() {
return price;
}
/**
* @param price 要设置的 price
*/
public void setPrice(double price) {
this.price = price;
}
/**
* @return amount
*/
public int getAmount() {
return amount;
}
/**
* @param amount 要设置的 amount
*/
public void setAmount(int amount) {
this.amount = amount;
}
}
输出结果:
购买数量:3
购买总价:183.0
平均花费:61.0
最高花费:84.0
最低花费:24.0
这些操作只是JDK中提供的支持操作,实际情况下一般都不会这样操作,因为这种操作是将数据都保存在内存中再进行处理,在处理大数据的时候,这种操作一定会造成崩溃。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)