concatenate list scala set scala-collections

concatenate - scala list



¿Cómo obtener un conjunto de todos los elementos que ocurren varias veces en una lista en Scala? (2)

Un poco más enrevesado pero puede evitar tener que llamar a toSet.toList , primero toSet.toList los enteros:

scala> s.groupBy(identity) res13: scala.collection.immutable.Map[Int,List[Int]] = Map(2 -> List(2), 4 -> List(4), 1 -> List(1, 1, 1), 3 -> List(3, 3))

A continuación, recopile solo el que la lista tiene una longitud mayor a 1:

scala> s.groupBy(identity).collect { case (v, l) if l.length > 1 => v } res17: scala.collection.immutable.Iterable[Int] = List(1, 3)

Si quiere un Set solo llame a toSet .

Por ejemplo, para List(1, 1, 1, 2, 3, 3, 4) sería Set(1, 3) , porque 1 y 3 son los únicos elementos que aparecen varias veces.


val s = List(1, 1, 1, 2, 3, 3, 4) // a list with non-unique elements (s diff s.distinct) toSet // Set(1, 3)