编写一个方法,返回数组中所有元素的值,重复除外。不要使用for
。 - 这是Scala书中的任务。
我尝试了myArray.mkString(", ")
,但它有重复。搜索Scaladoc但它没有帮助。
也许将它转换为某种Java Set
?
答案 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