I have an array of strings. What's the best way to turn it into an immutable set of strings?
I presume this is a single method call, but I can't find it in the scala docs.
I'm using scala 2.8.1.
Converting an array to Set objectThe Arrays class of the java. util package provides a method known as asList(). This method accepts an array as an argument and, returns a List object. Use this method to convert an array to Set.
So how to convert String array to String in java. We can use Arrays. toString method that invoke the toString() method on individual elements and use StringBuilder to create String. We can also create our own method to convert String array to String if we have some specific format requirements.
This method called toSet
, e.g.:
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)
In this case toSet
method does not exist for the Array
. But there is an implicit conversion to ArrayOps.
In such cases I can advise you to look in Predef. Normally you should find some suitable implicit conversion there. genericArrayOps
would be used in this case. genericWrapArray
also can be used, but it has lower priority.
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With