Я застрял в проблеме, которая возникла в моем задании по кодированию. Нам было поручено прочитать два txt-файла на основе данных traffi c, а затем создать объекты для каждого штата в США, содержащие код ID штата, название штата и количество аварийных ситуаций traffi c в каждом штате.
Я считаю, что мой код почти полностью корректен, но я продолжаю получать исключение IndexOutOfBoundsException при попытке напечатать мой конечный продукт, который является каждым объектом в моем массиве.
Вот мой код:
import java.util.*;
import java.io.*;
public class OuterMain {
public static void main(String[] args) throws IOException{
String line;
ArrayList<StateAccident> stateData = new ArrayList <StateAccident>();
File file = new File("StateCode.txt");
FileReader fileReader = new FileReader(file);
BufferedReader br = new BufferedReader(fileReader);
br.readLine();
while((line = br.readLine())!=null){
String arr[] = line.split(" ");
int stateCode = Integer.parseInt(arr[0]);
String stateName = arr[1];
StateAccident accidents = new StateAccident(stateCode,stateName);
stateData.add(accidents);
}
File stateAccidentsFile = new File("StateAccidents.txt");
fileReader = new FileReader(stateAccidentsFile);
br = new BufferedReader(fileReader);
line = null;
br.readLine();
while((line=br.readLine())!=null){
String arr[] = line.split(" ");
int stateID = Integer.parseInt(arr[0]);
stateData.get(stateID-1).incrementAccidentCount();
}
for(StateAccident accidents : stateData){
System.out.println(accidents.toString());
}
}
}
Строка, которая дает мне ошибку:
stateData.get(stateID-1).incrementAccidentCount();
Я бы очень признателен за помощь, потому что я чувствую, что это простое исправление, но я был в тупик и часами не знаю, что еще попробовать.
Вот два текстовых файла, из которых я читаю:
Statecode.txt: https://pastebin.com/LCRLystK Stateaccidents.txt: https://pastebin.com/bDGDu4UQ
Если есть какая-либо другая информация, которую я могу предоставить, чтобы помочь вам, пожалуйста, дайте мне знать! Это мой первый пост, поэтому я прошу прощения, если в моем вопросе есть какие-либо ошибки, я обязательно исправлю их, если потребуется. Спасибо!