У меня есть программа Java, которую я написал в Eclipse, с целью сбора значений данных, хранящихся в 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
}