在Java中连接Scala序列
在我的java代码中,我有两个scala Seq<String>
对象,我想将它们连接成一个Seq<String>
。我知道有可能出现以下情况:
Seq<String> seq1 = getSeq(1);
List<String> l1 = JavaConversions.seqAsJavaList(seq1);
Seq<String> seq2 = getSeq(2);
List<String> l2 = JavaConversions.seqAsJavaList(seq2);
l1.addAll(l2);
return JavaConverters.asScalaIteratorConverter(l1.iterator()).asScala().toSeq();
但是从Seq
到List
再到Seq
的转换效率非常低。在java代码中有更好的方法吗
# 1 楼答案
实际上,Java<->Scala转换并不昂贵,因为这些只是简单的包装,不会复制数据}转换成一个Scala{}
最昂贵的部分是
toSeq()
最后,我认为这是不必要的,不要转换一个积分器,你可以将一个Java{在任何情况下,您也不需要执行所有这些操作,只需调用seq:https://www.scala-lang.org/api/current/scala/collection/immutable/Seq.html提供的任何方法即可
因此,我很确定你可以