[RESOLVIDO] Eliminar repetição em lista

2 respostas
Onimatsu

Boa noite colegas que gostam de programar, preciso de uma sugestão para resolver este problema.
Tenho uma lista de objetos diferentes em memória com IDs iguais, queria apenas deixar os objetos com IDs diferentes na lista, por exemplo:

objeto em memória ...................id
[email protected]
[email protected]
[email protected]
[email protected]

estes devem permanecer na lista
[email protected]
[email protected]

no código criei uma lista temporária para adicionar apenas os objetos que não estão armazenados nela própria, essa lista temporária seria completamente lida a cada interação da lista mestre, vejam o código:
private static void controlaRepeticao() {
        List<Resultado> listaTemporaria = new ArrayList<>();
        Resultado resultadoAuxiliar = null;

        for (Resultado resultado : listaResultado) {

            if (listaTemporaria.isEmpty()) {
                listaTemporaria.add(resultado);
                
            } else {
                resultadoAuxiliar = resultado;
                
                for (Resultado resultadoTemporario : listaTemporaria) {
                    
                    if (resultadoTemporario.getId() == resultado.getId()) {           
                        resultadoAuxiliar = null;
                        break;
                    } 
                }
                if (resultadoAuxiliar != null) {
                    listaTemporaria.add(resultadoAuxiliar);
                    resultadoAuxiliar = null;
                }
            }
        }
        listaResultado = listaTemporaria;
    }
Porém, quando um valor é adicionado na lista em uso o java dispara a exceção ConcurrentModificationException. Preciso de uma sugestão de como contornar este problema, se existe alguma forma de verificar e eliminar a repetição na lista mestre sem uso de for ou se existe alguma outra lógica diferente que eu poderia usar.

2 Respostas

Onimatsu

Consegui, foi só adaptar o método para adicionar o elemento fora do for

igor_ks

Use Set ao inves de List, o Set foi feito para esses casos

Criado 1 de março de 2015
Ultima resposta 2 de mar. de 2015
Respostas 2
Participantes 2