如何将Array [String]转换为Set [String]?

时间:2011-04-25 13:11:47

标签: scala scala-collections

我有一个字符串数组。将它变成一组不可变的字符串的最佳方法是什么?

我认为这是一个方法调用,但我在scala文档中找不到它。

我正在使用scala 2.8.1。

2 个答案:

答案 0 :(得分:49)

此方法称为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也可以使用,但优先级较低。

答案 1 :(得分: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)