Ответ состоит из двух частей. Первая часть состоит в том, что методы аргумента переменной Scala, которые принимают T *, являются перестановкой методов, принимающих Seq [T]. Вы указываете Scala рассматривать Seq [T] как список аргументов вместо одного аргумента, используя «seq: _ *».
Вторая часть - это преобразование Collection [T] в Seq [T]. Пока нет общих встроенных способов сделать это в стандартных библиотеках Scala, но один очень простой (если не обязательно эффективный) способ сделать это - вызвать toArray. Вот полный пример.
scala> val lst : java.util.Collection[String] = new java.util.ArrayList
lst: java.util.Collection[String] = []
scala> lst add "hello"
res0: Boolean = true
scala> lst add "world"
res1: Boolean = true
scala> Set(lst.toArray : _*)
res2: scala.collection.immutable.Set[java.lang.Object] = Set(hello, world)
Обратите внимание, что scala.Predef.Set и scala.collection.immutable.HashSet являются синонимами.