web-dev-qa-db-ja.com

Array [String]をSet [String]に変換するにはどうすればよいですか?

文字列の配列があります。それを不変の文字列のセットに変える最良の方法は何ですか?

これは単一のメソッド呼び出しであると思いますが、scala docsで見つかりません。

scala 2.8.1。

28
dave4420

このメソッドは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)

この場合、toSetArrayメソッドは存在しません。ただし、暗黙的に ArrayOps に変換されます。

そのような場合は、 Predef を調べることをお勧めします。通常、適切な暗黙の変換がそこにあります。この場合、genericArrayOpsが使用されます。 genericWrapArrayも使用できますが、優先度は低くなります。

51
tenshi
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)
12
missingfaktor