2015-11-22 40 views
0

編寫一個方法,該方法返回數組中所有元素的值(重複除外)。請勿使用for。 - 這是Scala書的任務。我試過myArray.mkString(", ")但它有重複。搜索到Scaladoc,但它沒有幫助。返回數組中的元素,重複除外

也許將其轉換爲某種Java Set

回答

2

套裝包括獨特的價值,所以用轉換到它:

v.toSet.mkString(", ") 
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) 

調用.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

另一種方法,使用groupBy上的身份,其中提供Map,其中密鑰是唯一的定義,像這樣

xs.groupBy(identity).keys