У меня есть файл CSV, который я хранил как arraylist в Java. Вот код, я побежалПоиск индекса в ArrayList
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());
}
}
}
код работает правильно, однако, у меня возникли проблемы со следующей частью проекта. Пример данных
- Дата Открытия High Low Close Volume Adj Закрыть
- 6/10/2011 128.85 128.93 127,26 127,6 126,97 238629400
- 6/13/2011 127,89 128,24 127,05 127,7 127,07 207599800
- 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 для диапазона дат. скажем, между 13.06.2011 и 06/15/2016. Похоже, мне нужно будет сначала найти индекс даты, а затем распечатать запись о цене.
Как я могу это сделать? Я не знаю, с чего начать. Нужно ли сначала сохранять дату в своем собственном списке/массиве и использовать ее для поиска индекса?
Благодаря
Вы храните даты в виде строк, что затруднит их сравнение. Вместо этого вы можете хранить их как java.time.LocalDate. –