Listas: forma idiomática de filtrar elementos similares
Estoy buscando lo contrario dedistinct
.
En una lista con[ "a", "a", "b", "c", "b", "d" ]
Solo quiero mantener"a"
y"b"
porque aparecen varias veces
Una solución para esto podría ser la siguiente:
val similarsList = mutableListOf<String>()
list.filter {
if (similars.contains(it))
return@filter true
similars.add(it)
false
}.distinct()
Esto eliminará todos los elementos que coincidan con un elemento ya contenido antes. En ellist
objetar todos los elementos que aparecen varias veces se almacenarán despuésfilter
. distinct
en este caso, limpia elementos que aparecieron tres o más veces.
soybuscando una forma idiomática de hacer exactamente eso, lo contrario dedistinct
.