繁体   English   中英

如何从(双)ArrayList 中找到最小值、最大值和平均值以打开 GUI(图形)?

[英]How do I find the min, max and avg values from a (double) ArrayList to open a GUI (graph)?

对于完整上下文:这是 JFrame 类/JButton 中的代码,用于打开数据并呈现一个内容窗格,一旦单击其中的某个按钮,它就允许用户打开一个图形(因此该代码位于 ActionListener 中) . 所有与打开图形相关的代码(它也在一个单独的类上)本身工作正常。

内容窗格还允许其用户通过单击显示为“CSV”的单选按钮并单击标记为“加载”的按钮(另一个显示为“显示”的按钮允许其中的数据)打开具有相同数据的 CSV 文件那些要发布在 (AWT) 文本区域上的文件。 这已经完成了,没有任何问题。

由于文件的每一列中有数千行(因此基本上有很多数据),我需要找到其中几列的最小值、最大值和平均值。 'mm' 和 'temperature' 列是同一包中不同类中数据列表的两个内容。

JButton btnMinMaxAvg = new JButton("Min/Max/Avg");

   btnMinMaxAvg.addActionListener(new ActionListener() {

       public void actionPerformed(ActionEvent e) {


        ArrayList<Double> mm = new ArrayList<Double>();
        ArrayList<Double> temperature = new ArrayList<Double>();

        for(data f: dataList){
            mm.add(f.getMm());
            temperature.add(f.getTemperature());

            LineChartData l = new LineChartData("Plot Data");
            l.setMm(mm);
                l.setTemperature(Temperature);

            l.plot();

               }

    });
        btnMinMaxAvg.setBounds(315, 65, 89, 23);
        contentPane.add(btnMinMaxAvg);


}

上面的代码只是打开一个包含这些列的值的图表,但我一直无法找到最小值、最大值和平均值。 即使是关于其中之一的信息也会非常有帮助。 谢谢你。

使用 Java 8,三行:

    DoubleSummaryStatistics summaryStatistics = temperature.stream().mapToDouble(Double::doubleValue).summaryStatistics();
    double minTemp = summaryStatistics.getMin();
    double maxTemp = summaryStatistics.getMax();
    double average = summaryStatistics.getAverage();

您需要调用mapToDouble(Double::doubleValue)因为您有一个List<Double>但如果您直接创建Stream则不需要它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM