我正在使用Java(scala.collection.Seq<A>
)中Scala的Seq类,根据Scala documentation,有一个++
操作数将两个Seq合并为一个。如何在Java中做同样的事情?
答案 0 :(得分:3)
Scala标识符++
在JVM上转换为$plus$plus
。不幸的是,您无法调用seq1.$plus$plus(seq2)
,因为++
的真实签名是
def ++[B >: A, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That
并从Java提供CanBuildFrom
参数是...从技术上来说是可行的,但您不希望这样做。
因此,我建议在涉及CanBuildFrom
的Java中使用JavaConverters
方法将Scala集合转换为Java之前。
答案 1 :(得分:0)
要在Java中执行相同的操作,可以使用addAll方法。假设您有两个列表listOne和listTwo。
List<T> resultList = new ArrayList<T>(listOne);
resultList.addAll(listTwo);