Muchas veces nos es necesario quietar cualquier elemento que este duplicado dentro de un ArrayList<T> de Java. Para realizar tal acción existen colecciones del tipo HashSet<T> que nos permiten agregar todos los elementos del array y nos devuelve una colección de objetos sin duplicados.
Para realizar tal acción simplemente hay que agregar la colección del ArrayList<T> al HashSet<T> y luego regresar la información. Se puede observar en el siguiente código:
En el código anterior hay dos casos, el primero usa un HashSet<T> el cual elimina los duplicados de un array de String pero nos lo devuelve sin ningún orden en particular. En el segundo caso se usa un LinkedHashSet<T> el cual elimina los repetidos de un ArrayList de objetos Datos y mantiene el orden con el que venía. Si se desea que la respuesta este ordenada LinkedHashSet es la solución.
Es importante que al trabajar con objetos con varios atributos como lo es Datos sobrescribamos sus métodos equals() y hashCode(). Pueden leer sobre esto en el siguiente post.
Al final la respuesta nos quedaría asi:
Cadena2
Cadena3
Cadena4
Cadena1
Info: 1-Nombre1-Empresa1
Info: 2-Nombre2-Empresa2
Info: 3-Nombre3-Empresa3
Info: 4-Nombre4-Empresa4
Info: 5-Nombre5-Empresa5
Info: 1-Nombre2-Empresa2
exelente, me ayudo mucho y muy simple gracias !!!
ResponderEliminarthe fucking boss
ResponderEliminarfantástico!
ResponderEliminarSi en vez de eliminar los datos repetidos, los tendría que reemplazar por un valor negativo o cualquier otro valor, ejemplo: "-1".
ResponderEliminarTe recomiendo que realices otro List, recorras el primero obteniendo sus valores, operándolos como corresponda e insertando los nuevos valores en el nuevo List.
EliminarLa respuesta esta excelente. Pero no busco comparar dos array o crear otro, sino mas bien recorrer un solo arreglo y si dentro de el se encuentra valores duplicados, reemplazarlos por un -1.
EliminarLa función seria con un "if" pero esa es la parte donde no sabría comparar una lista y agregarles valor. Pero muchas gracias mi hermano.
Este comentario ha sido eliminado por el autor.
ResponderEliminaresto debe de servir con puros String tambien?, que no me funciona con puras cadenas
ResponderEliminarMuy buen aporte, muchas gracias me resolviste un gran problema
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarMuy buena explicación!
ResponderEliminarHola, y si quisiera recorrerlos pero eliminando las letras repetidas en una cadena ?. Muchas Gracias
ResponderEliminar