Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从(双)ArrayList中找到最小值、最大值和平均值以打开GUI(图形)?_Java_Csv_Graph_Jframe - Fatal编程技术网

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

Java 如何从(双)ArrayList中找到最小值、最大值和平均值以打开GUI(图形)?,java,csv,graph,jframe,Java,Csv,Graph,Jframe,全文如下: 这是JFrame类/JButton中的代码,用于打开数据并显示内容窗格,该窗格允许用户在单击其中的某个按钮后打开图形(因此代码位于ActionListener中)。所有与打开图形(也在一个单独的类上)相关的代码都可以正常工作 内容窗格还允许其用户通过单击显示为“CSV”的单选按钮并单击标记为“加载”的按钮打开具有相同数据的CSV文件,另一个显示为“显示”的按钮允许将这些文件中的数据发布到(AWT)文本区域。这项工作已经完成,没有任何问题 由于文件的每一列中有数千行(因此基本上有很多数

全文如下: 这是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);


}
JButton btnMinMaxAvg=新JButton(“最小/最大/平均”);
btnMinMaxAvg.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
ArrayList mm=新的ArrayList();
ArrayList温度=新ArrayList();
用于(数据f:数据列表){
mm.add(f.getMm());
添加(f.getTemperature());
LineChartData l=新的LineChartData(“绘图数据”);
l、 setMm(mm);
l、 设定温度(温度);
l、 plot();
}
});
btnMinMaxAvg.立根(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)
,因为您有一个
列表
,但如果您直接创建
,则不需要它。

您好@DLxe,欢迎使用StackOverflow。如果有人回答了你的问题,你可以接受他的回答。如果没有,你可以告诉他为什么它没有解决你的问题。您也可以在此处查看: