By Alvin Alexander. Last updated: June 4, 2016
Scala FAQ: How do I find the unique items in a List
, Array
, Vector
, or other Scala sequence?
Solution: Use the distinct
method.
Here's a simple example using a List
of integers:
scala> val x = List(1,1,1,2,2,3,3) x: List[Int] = List(1, 1, 1, 2, 2, 3, 3) scala> x.distinct res0: List[Int] = List(1, 2, 3)
As you can see, res0
now contains only the unique elements in the list.
Here's another example with a list of strings:
scala> val x = List("a", "a", "b", "b", "c") x: List[String] = List(a, a, b, b, c) scala> x.distinct res1: List[String] = List(a, b, c)
Last but not least, here's a list of a custom type, a Person
class defined as a case class:
scala> case class Person(name: String, age: Int) defined class Person scala> List(Person("joe",20), Person("fred",22), Person("joe", 20), Person("mary", 24)).distinct res2: List[Person] = List(Person(joe,20), Person(fred,22), Person(mary,24)) scala> List(Person("joe",20), Person("fred",22), Person("joe", 20), Person("fred",22)).distinct res3: List[Person] = List(Person(joe,20), Person(fred,22))
If you need to find the unique elements in a list/sequence in Scala, I hope this has been helpful.