Tengo un `ArrayList<de cadenas<y quiero eliminar de él las cadenas repetidas. ¿Cómo puedo hacerlo?
Si no quiere duplicados en una Colección
, debería considerar por qué está usando una Colección
que permite duplicados. La forma más sencilla de eliminar los elementos repetidos es añadir el contenido a un Set
(que no permite duplicados) y luego volver a añadir el Set
a la ArrayList
:
Set<String> set = new HashSet<>(yourList);
yourList.clear();
yourList.addAll(set);
Por supuesto, esto destruye el orden de los elementos en la ArrayList
.
Aunque convertir el ArrayList
en un HashSet
elimina efectivamente los duplicados, si necesita preservar el orden de inserción, le sugiero que utilice esta variante
// list is some List of Strings
Set<String> s = new LinkedHashSet<>(list);
Luego, si necesitas recuperar una referencia List
, puedes utilizar de nuevo el constructor de conversión.
Si no quiere duplicados, utilice un Set en lugar de una Lista
. Para convertir una Lista
en un Conjunto
puede utilizar el siguiente código:
// list is some List of Strings
Set<String> s = new HashSet<String>(list);
Si es realmente necesario puedes utilizar la misma construcción para convertir un Set
de nuevo en un List
.