Detectar duplicados en un ArrayList o List (Java) usando Map, HashMap:
Resultado del ejemplo:
Lista Original: [1, 2, 5, 6, 3, 4, 4, 6, 8, 9]
Key: 3 Fila: 4
Key: 5 Fila: 2
Key: 2 Fila: 1
Key: 9 Fila: 9
Key: 4 Fila: 5
Key: 8 Fila: 8
Key: 6 Fila: 3
Key: 1 Fila: 0
Duplicados [Key 4 de la fila 6 ya esta registrado, Key 6 de la fila 7 ya esta registrado]
Ejemplo Finalizado.
public class TestDmottaB {
public static void main(String[] args){
validarValoresDuplicadosLista();
System.out.println("Ejemplo Finalizado.");
}
public static void validarValoresDuplicadosLista() {
ArrayList al = new ArrayList();
al.add("1");
al.add("2");
al.add("5");
al.add("6");
al.add("3");
al.add("4");
al.add("4");
al.add("6");
al.add("8");
al.add("9");
System.out.println("Lista Original: " + al);
//Logica para detectar valores duplicados en una lista
Map map = new HashMap();
List duplicados = new ArrayList();
Iterator iter = al.iterator();
int i=0;
while (iter.hasNext()) {
String valor=(String)iter.next();
if(map.containsKey(valor)){
duplicados.add("Key "+valor+" de la fila "+i+" ya esta registrado");
}else{
map.put(valor,""+i);
}
i++;
}
//Recorrer la lista de los valores no duplicados
Set set = map.entrySet();
Iterator ite = set.iterator();
while (ite.hasNext()) {
Map.Entry entry = (Map.Entry) ite.next();
System.out.println("Key: "+entry.getKey()+" Fila: "+entry.getValue());
}
//Los valores que se duplicaron
System.out.println("Duplicados " + duplicados);
}
}
Resultado del ejemplo:
Lista Original: [1, 2, 5, 6, 3, 4, 4, 6, 8, 9]
Key: 3 Fila: 4
Key: 5 Fila: 2
Key: 2 Fila: 1
Key: 9 Fila: 9
Key: 4 Fila: 5
Key: 8 Fila: 8
Key: 6 Fila: 3
Key: 1 Fila: 0
Duplicados [Key 4 de la fila 6 ya esta registrado, Key 6 de la fila 7 ya esta registrado]
Ejemplo Finalizado.
Comentarios
Publicar un comentario