У меня есть CSV-файл, который содержит следующую информацию:
Santa Catarina,Florianópolis,São José,Biguaçu,Palhoça
Rio grande do Sul,Porto alegre,,,
Paraná,Curitiba,Londrina,Ponta Grossa,
Каждые первые данные из каждой строки являются штатами, а следующие города являются соответствующими.
У меня есть два объекта: Штат и Город, Штат (Estado) имеет Имя и ArrayList
городов, а Город (Cidade) имеет множество атрибутов.
Чтобы прочитать мой CSV, вот мой код:
BufferedReader r = new BufferedReader(new FileReader("C:\\Users\\Pedro Sarkis\\Desktop\\ex3.csv"));
ArrayList<Estado> estados = new ArrayList<>();
ArrayList<Cidade> cidade = new ArrayList<>();
// String estados2[];
int i = 1;
String line = r.readLine();
try {
while (line != null) {
// System.out.println("Line " + i + ": " + line);
String[] campos = line.split(",");
for (int j = 1; j < campos.length; j++) {
Cidade c = new Cidade();
c.setNome(campos[j]);
cidade.add(c);
}
Estado e = new Estado(campos[0], cidade);
estados.add(e);
cidade.clear();
line = r.readLine();
i++;
}
} finally {
r.close();
}
Проблема в том, что я просто не могу ограничить города соответствующими состояниями.
Я былтестирование с использованием .clear()
для своего рода сброса моего списка после каждого while
, но оно не работает, поскольку оно сбрасывает все мои прошлые данные, и без использования .clear()
все мои штаты получают все города.