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