2011-04-25 30 views

回答

41

这种方法称为toSet,例如:

scala> val arr = Array("a", "b", "c") 
arr: Array[java.lang.String] = Array(a, b, c) 

scala> arr.toSet 
res1: scala.collection.immutable.Set[java.lang.String] = Set(a, b, c) 

在这种情况下toSet方法不为Array存在。但有一个隐式转换为ArrayOps

在这种情况下,我可以建议你看看Predef。通常你应该在那里找到一些合适的隐式转换。在这种情况下将使用genericArrayOpsgenericWrapArray也可以使用,但它具有较低的优先级。

12
scala> val a = Array("a", "b", "c") 
a: Array[java.lang.String] = Array(a, b, c) 

scala> Set(a: _*) 
res0: scala.collection.immutable.Set[java.lang.String] = Set(a, b, c) 

// OR  

scala> a.toSet 
res1: scala.collection.immutable.Set[java.lang.String] = Set(a, b, c) 
+0

一个小小的评论...我更喜欢Set(a:_ *)over .toSet的唯一原因是如果我想要一个可变集合,例如, 'collection.mutable.Set(a:_ *)' – 2011-04-27 17:35:20

相关问题