在Java中是否可以将返回值存储为数组?

问题描述 投票:-1回答:1

我有一个用Eclipse写的Java程序,目的是获取存储在Excel中的数据值,并使用Nebula插件将这些数据值放入相关图以进行假设检验。我正在使用缓冲读取器导入我的数据,能够使用封装和构造函数获取要返回到控制台的数据。我的问题:将输出存储到数组中以便我可以绘制出来是否可行?我的想法是初始化数组,然后以某种方式通过方法存储输出,但是我仍然坚持如何做....

编辑:我应该澄清-我在问有关将我的对象转移到并行数组中的问题。这是好习惯吗?如果是这样,如何才能最有效地做到这一点?

一些代码(很长,但是我不想;任何重要的事情都不会遗漏):

public class CovidPlots {

public static void main(String[] args) {
//Data source
    List<Book> stocks = readBooksFromCSV("COVID_DJI.csv");
    for (Book b : stocks) {
        System.out.println(b);
    }
private static List<Book> readBooksFromCSV(String fileName) {
        List<Book> stocks = new ArrayList<>();
        Path pathToFile = Paths.get("C:\\Users\\zrr81\\Downloads\\COVID-19_Analysis\\COVID_DJI.csv");

        //Try/catch IO exception for input file stream
        try (BufferedReader br = Files.newBufferedReader(pathToFile, StandardCharsets.US_ASCII)) {
             //Initialize counter to skip header
             int count = 0;
             String line = br.readLine();
             while(line != null) {
                 //Tell the reader to split the text when it hits the delimiter
                 String[] attributes = line.split(",");
                 Book book = createBook(attributes);
                 stocks.add(book);
                 count ++;
                 line = br.readLine();
            }
        }
        catch (IOException e) {
            e.printStackTrace();
        }

        return stocks;
    }

    //Create output arrays
    String[] days;
    double [] openers;
    double[] closers;

    //Import data into array "Book" 
     private static Book createBook(String[] metadata) {
            String day = metadata[0];
            double opener = Double.parseDouble(metadata[1]);
            double closer = Double.parseDouble(metadata[4]);
            return new Book(day, opener, closer);
    }

}

//Book class file (separate file in my package)
class Book {
//Define spreadsheet "Book"
    private String date;
    private double opener;
    private double closer;

    // All-args constructor, getters, setters and toString()
    // left out for brevity
}
java arrays eclipse encapsulation
1个回答
0
投票
我做了很多研究,我想我找到了一种轻松将它们构建到数组中的方法。如果有人有相同的问题,请在此处发布:

//Create arrays that can hold output double[] opening; double[] closing; int len = stocks.size(); opening = new double[len]; closing = new double[len]; int j = 0; for (Book x : stocks) { double o_value = x.getOpen(); double c_value = x.getClose(); opening[j] = o_value; closing[j] = c_value; j++; }

即使构造函数是私有的,它也会拉取构造函数的值,因为它为每个循环使用与ArrayList类型相同的对象。这将创建并行数组,每个数组都包含我需要绘制的数据。鉴于我在并行数组上阅读了不同的内容,所以仍然不知道这是否是最佳实践,但这可以解决我的问题。
© www.soinside.com 2019 - 2024. All rights reserved.