【发布时间】:2016-08-28 22:05:23
【问题描述】:
我有一个 CSV 文件,我在 Java 中存储为数组列表。这是我运行的代码
public class StockData {
private ArrayList<StockRecord> records;
public StockData() {
records = new ArrayList<StockRecord>();
}
//reads the file from the folder
public void loadPriceData(String filepath) {
try {
Scanner scanner = new Scanner(new FileReader(filepath));
String line;
StockRecord record;
scanner.nextLine();
while (scanner.hasNextLine()) {
line = scanner.nextLine();
String[] results= line.split(",");
double open = Double.parseDouble( results[1]);
double high = Double.parseDouble( results[2]);
double low = Double.parseDouble( results[3]);
double close = Double.parseDouble( results[4]);
double volume = Double.parseDouble( results[5]);
double adjClose = Double.parseDouble( results[6]);
//create the record
record = new StockRecord(results[0], open, high, low, close, volume, adjClose);
records.add(record);
}
scanner.close();
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
}
代码可以正常工作,但是我在项目的下一部分遇到了问题。 数据示例
- 日期开盘高低收盘成交量调整收盘
- 6/10/2011 128.85 128.93 127.26 127.6 238629400 126.97
- 6/13/2011 127.89 128.24 127.05 127.7 207599800 127.07
- 6/14/2011 128.87 129.77 128.82 129.32 160570400 128.68
- 6/15/2011 128.24 129.3 126.68 127.02 300958000 126.39
- 6/16/2011 127.06 127.97 126.32 127.3 308032800 126.67
我正在尝试打印某个日期范围的 AdjClose 价格。比如说在 2011 年 6 月 13 日到 2016 年 6 月 15 日之间。看来我需要先找到日期的索引,然后打印价格记录。
我该怎么做?我不知道从哪里开始。我是否首先需要将日期保存在自己的列表/数组中并使用它来查找索引?
谢谢
【问题讨论】:
-
您将日期存储为字符串,这将使它们难以比较。您可以将它们存储为 java.time.LocalDate。
标签: java csv arraylist indexing