Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2008, 15:12
Nendrel
 
Fecha de Ingreso: agosto-2006
Mensajes: 35
Antigüedad: 17 años, 8 meses
Puntos: 0
Borrar duplicados de un ArrayList

Hola a todos.
Veréis, me encuentro con el siguiente problema. Tengo un ArrayList (de java.util) con objetos, algunos de ellos duplicados y no sé cómo hacer para generar otro ArrayList que tenga sólo los objetos que no estén duplicados.

He probado a recorrer la lista de la siguiente manera:

Código:
for(int i=0; i<arrayList.size(); i++) {
    Contrato contrato = (Contrato) arrayList.get(i);
    for(int j=i+1; j<arrayList.size(); j++ {
        Contrato contrato2 = (Contrato) arrayList.get(j);
        if (contrato.getNumContrato.equals(contrato2.getNumContrato) {
            arrayList.remove(j);
        }
    }
}
Es decir, coger el primer elemento y compararlo con el resto a través del número de contrato. Si coinciden, lo borra y si no, pasa al siguiente.
Pero me parece que me estoy dejando algo porque no me borra todos. ¿Alguien me puede decir cuál es la solución óptima (si encima es usando iteradores, mejor)?
Otra duda que tengo es que al ir borrando se va cambiando el tamaño del ArrayList...

Gracias de antemano.