随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。

简介:

数据分析中一个最重要的基础模型: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中提供的支持操作,实际情况下一般都不会这样操作,因为这种操作是将数据都保存在内存中再进行处理,在处理大数据的时候,这种操作一定会造成崩溃。

 

posted on 2022-03-19 22:12  时间完全不够用啊  阅读(185)  评论(0编辑  收藏  举报