Scala: как конвертировать ArrayBuffer в набор? - PullRequest
4 голосов
/ 02 февраля 2012

Я долго искал, как преобразовать ArrayBuffer в Set, HashSet Я думаю, чтобы быть точным. Любой намек?

Ответы [ 3 ]

9 голосов
/ 02 февраля 2012

В реализована функция toSet ArrayBuffer

Пример:

scala> import collection.mutable.ArrayBuffer
import collection.mutable.ArrayBuffer

scala> import collection.immutable.HashSet
import collection.immutable.HashSet

scala> val a = new ArrayBuffer(2)
a: scala.collection.mutable.ArrayBuffer[Nothing] = ArrayBuffer()

scala> val b = a.toSet
b: scala.collection.immutable.Set[Nothing] = Set()
3 голосов
/ 02 февраля 2012

Для установки:

scala> val bf = ArrayBuffer(1,2,3,4)
bf: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4)
scala> bf.toSet
res0: scala.collection.immutable.Set[Int] = Set(1, 2, 3, 4)

К HashSet:

scala> val hs = new HashSet[Int]++ bf.toSet
hs: scala.collection.immutable.HashSet[Int] = Set(1, 2, 3, 4)
2 голосов
/ 02 февраля 2012

Для полноты, еще один способ:

scala> import collection.mutable.ArrayBuffer
import collection.mutable.ArrayBuffer

scala> val as = ArrayBuffer(34, 89, 11)
as: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(34, 89, 11)

scala> Set(as: _*)
res13: scala.collection.immutable.Set[Int] = Set(34, 89, 11)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...