如何将Scala中的Array
转换为mutable.Set
?
将其转换为immutable.Set
很容易:
Array(1, 2, 3).toSet
但我找不到一种明显的方法来转换为 mutable.Set
。
如何将Scala中的Array
转换为mutable.Set
?
将其转换为immutable.Set
很容易:
Array(1, 2, 3).toSet
但我找不到一种明显的方法来转换为 mutable.Set
。
scala> val s=scala.collection.mutable.Set()++Array(1,2,3)
s: scala.collection.mutable.Set[Int] = Set(2, 1, 3)
scala> scala.collection.mutable.Set( Array(1,2) :_* )
res2: scala.collection.mutable.Set[Int] = Set(2, 1)
奇怪的:_*
类型注释,强制工厂方法将数组视为参数列表。
从 Scala 2.10
开始,通过使用应用了 .to(factory)
的工厂构建器:
Array(1, 2, 3).to[collection.mutable.Set]
// collection.mutable.Set[Int] = Set(1, 2, 3)
而从 Scala 2.13
开始:
Array(1, 2, 3).to(collection.mutable.Set)
// collection.mutable.Set[Int] = HashSet(1, 2, 3)