Как мне преобразовать массив [String] в набор [String]? - PullRequest
25 голосов
/ 25 апреля 2011

У меня есть массив строк. Какой лучший способ превратить его в неизменный набор строк?

Я предполагаю, что это единственный вызов метода, но я не могу найти его в документации scala.

Я использую scala 2.8.1.

Ответы [ 2 ]

50 голосов
/ 25 апреля 2011

Этот метод называется 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 также может использоваться, но имеет более низкий приоритет.

12 голосов
/ 25 апреля 2011
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)
...