我有一个字符串数组。把它变成一套不变的字符串的最好方法是什么?如何将数组[String]转换为Set [String]?
我认为这是一个单一的方法调用,但我无法在scala文档中找到它。
我正在使用scala 2.8.1。
我有一个字符串数组。把它变成一套不变的字符串的最好方法是什么?如何将数组[String]转换为Set [String]?
我认为这是一个单一的方法调用,但我无法在scala文档中找到它。
我正在使用scala 2.8.1。
这种方法称为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。通常你应该在那里找到一些合适的隐式转换。在这种情况下将使用genericArrayOps
。 genericWrapArray
也可以使用,但它具有较低的优先级。
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)
一个小小的评论...我更喜欢Set(a:_ *)over .toSet的唯一原因是如果我想要一个可变集合,例如, 'collection.mutable.Set(a:_ *)' – 2011-04-27 17:35:20