如何将Java中的SortedSet转换为Scala中的Seq

时间:2011-08-16 00:10:22

标签: java scala scala-collections sortedset

我正在使用的Jedis调用返回一个Set,尽管在运行时它实际上是一个LinkedHashSet。我想将它拉入Scala,反序列化元素,然后返回Seq。

2 个答案:

答案 0 :(得分:3)

容易!

import collection.JavaConverters._
val theJavaSet = methodReturningLinkedHashSet()
theJavaSet.asScala.toSeq

我也倾向于避免JavaConversions(除非受旧版Scala限制)。 JavaConverters可提供更多控制,并且可以避免在更复杂的情况下可能出现的几个问题。

答案 1 :(得分:0)

凯文说,但没有输入错误,在2.8.1或更高版本:

val javaSet: java.util.Set[String] = new java.util.LinkedHashSet[String]()
javaSet.add("a")
javaSet.add("b")
import collection.JavaConverters._
javaSet.asScala.toSeq
// res2: Seq[String] = ArrayBuffer(a, b)

或(也适用于2.8.0):

import collection.JavaConversions._
javaSet.toSeq