从数组返回元素,重复除外

时间:2015-11-22 21:17:18

标签: scala

编写一个方法,返回数组中所有元素的值,重复除外。不要使用for。 - 这是Scala书中的任务。

我尝试了myArray.mkString(", "),但它有重复。搜索Scaladoc但它没有帮助。

也许将它转换为某种Java Set

3 个答案:

答案 0 :(得分:5)

使用.distinct

scala> Array(1,2,3,4,2,3,4,5,4,5,6,7).distinct
res0: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7)

如同Michal的回答一样,调用.toSet,如果您不关心订购,也会有效:

scala> Array(1,2,3,4,2,3,4,5,4,5,6,7).toSet
res1: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 2, 7, 3, 4)

答案 1 :(得分:2)

Set包含唯一值,因此请使用转换为:

v.toSet.mkString(", ")

答案 2 :(得分:1)

另一种方法,在身份上使用groupBy,提供Map,其中键根据定义是唯一的,例如

xs.groupBy(identity).keys