连接两个 Traversable 到一个新的 Traversable

如何将两个 Traversable 到一个新的 Traversable。

不要求两个 Traversable对象所包含的元素类型(类型参数)必须一致。

 

解决方案:

使用 ++ 方法可以连接两个 Traversable。

A.++(B) 可以写成 A ++ B

package main

object Test {

  def main(args: Array[String]): Unit = {

    val ids = Traversable(101, 102, 103, 104);
    val names = Traversable("刘德华", "张学友", "郭富城", "黎明");
    val score = Traversable(66, 77, 88, 90);


    val all = ids ++ names ++ score;
    println(all);
    //List(101, 102, 103, 104, 刘德华, 张学友, 郭富城, 黎明, 66, 77, 88, 90)

    val all2 = ids.++(names).++(score);
    println(all2)
    //List(101, 102, 103, 104, 刘德华, 张学友, 郭富城, 黎明, 66, 77, 88, 90)

  }
}

 

总结:

每个 ++ 操作都会生成一个新的集合,因此这种写法会生成大量的中间集合。

当这种集合多了以后会影响垃圾回收,所以它不是最好的方法。

更有效的方法是使用 scala.collection.mutable.Traversable 伴生对象的 concat()方法。

 

posted @ 2019-07-20 17:42  茗::流  阅读(77)  评论(0)    收藏  举报
如有雷同,纯属参考。如有侵犯你的版权,请联系我。