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