有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在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();

但是从SeqList再到Seq的转换效率非常低。在java代码中有更好的方法吗


共 (1) 个答案

  1. # 1 楼答案

    实际上,Java<->Scala转换并不昂贵,因为这些只是简单的包装,不会复制数据
    最昂贵的部分是toSeq()最后,我认为这是不必要的,不要转换一个积分器,你可以将一个Java{}转换成一个Scala{}

    在任何情况下,您也不需要执行所有这些操作,只需调用seq:https://www.scala-lang.org/api/current/scala/collection/immutable/Seq.html提供的任何方法即可

    因此,我很确定你可以

    seq1.concat(seq2)