1
I have a class that reads a csv file and puts the table data on a list.
public class Gerenciador {
public LinkedList<Acidentes> listAcidentes;
public Gerenciador() {
listAcidentes = new LinkedList<>();
}
public void readFile(String nomeArq) {
try {
Path path1 = Paths.get(nomeArq);
BufferedReader reader = Files.newBufferedReader(path1, Charset.forName("utf8"));
String line = reader.readLine();
while ((line = reader.readLine()) != null) {
line = line.replace(",", ".");
String[] dados = line.split(";");
//Variaveis para criação do objeto acidente
String log1 = dados[1]; //Endereço 1
String log2 = dados[2]; //Endereço 2
int hora = Integer.parseInt(dados[30]); // Intervalo de hora cheia
DiaNoite turno = null; //Verificação de dia ou noite
if (dados[21].equalsIgnoreCase("NOITE")) {
turno = DiaNoite.NOITE;
} else {
turno = DiaNoite.DIA;
}
String dia = dados[28]; //Dia do acidente
String mes = dados[29]; //Mes do acidente
String ano = dados[30]; //Ano do acidente
Clima clima = null; //Verificação do clima (BOM/NULBADO/CHUVOSO)
if (dados[23].equalsIgnoreCase("BOM")) {
clima = Clima.BOM;
} else if (dados[23].equalsIgnoreCase("NUBLADO")) {
clima = Clima.NUBLADO;
} else {
clima = Clima.CHUVOSO;
}
DiaSemana diaSemana = null; //Verificação do dia da semana do acidente
switch (dados[8]) {
case "SEGUNDA-FEIRA":
diaSemana = DiaSemana.SEGUNDA;
break;
case "TERÇA-FEIRA":
diaSemana = DiaSemana.TERCA;
break;
case "QUARTA-FEIRA":
diaSemana = DiaSemana.QUARTA;
break;
case "QUINTA-FEIRA":
diaSemana = DiaSemana.QUINTA;
break;
case "SEXTA-FEIRA":
diaSemana = DiaSemana.SEXTA;
break;
case "SABADO":
diaSemana = DiaSemana.SABADO;
break;
case "DOMINGO":
diaSemana = DiaSemana.DOMINGO;
break;
}
//String tipoAcid = dados[5];
TipoAcid tipoAcid = null;
switch (dados[5]) {
case "CHOQUE":
tipoAcid = TipoAcid.CHOQUE;
break;
case "ABALROAMENTO":
tipoAcid = TipoAcid.ABALROAMENTO;
break;
case "COLISAO":
tipoAcid = TipoAcid.COLISAO;
break;
case "QUEDA":
tipoAcid = TipoAcid.QUEDA;
break;
case "ATROPELAMENTO":
tipoAcid = TipoAcid.ATROPELAMENTO;
break;
case "EVENTUAL":
tipoAcid = TipoAcid.EVENTUAL;
break;
}
double lat = Double.parseDouble(dados[35]); //Latitude
double lon = Double.parseDouble(dados[36]); //Longitude
GeoPosition pos = new GeoPosition(lat, lon); //Localização do acidente
Dia d = new Dia(hora, turno, dia, mes, ano, clima, diaSemana); //Criação do dia, para criar um acidente
Acidentes a = new Acidentes(log1, log2, d, tipoAcid, pos); //Criação do objeto acidente
listAcidentes.add(a);
}
} catch (IOException x) {
System.err.format("Erro de E/S: %s%n", x);
}
}
@Override
public String toString() {
return super.toString();
}
I need to clone the list for a class of tests, so I can manipulate that data, but I don’t know how to do that. I already tested the clone method and it didn’t work (or else I used it wrong)
The
clone()
works yes. Where you are using it?– Gustavo