将另一个Scala队列排入Scala Queue

时间:2016-11-24 16:20:30

标签: scala queue

我想将另一个Scala Queue排入Scala Queue。类似的东西:

val q1 = Queue(1,2,3,4)
val q2 = Queue(5,6,7,8)

我想得到一个结果:

val q3 = Queue(1,2,3,4,5,6,7,8)

我已经尝试过了:

val q3 = (0 until q2.length).map(ind => q1.enqueue(q2(ind)))

但它会返回如下的IndexedSeq [Unit]:

Vector((), (), (), ())

你有什么想法吗?

2 个答案:

答案 0 :(得分:1)

怎么样:

import scala.collection.immutable.Queue
val q1 = Queue(1,2,3,4)
val q2 = Queue(5,6,7,8)
val q3 = q1 ++ q2
q3: scala.collection.immutable.Queue[Int] = Queue(1, 2, 3, 4, 5, 6, 7, 8)

或以可变的方式:

import scala.collection.mutable.Queue
val q1 = Queue(1,2,3,4)
val q2 = Queue(5,6,7,8)
val q3 = q1 ++= q2
q3: q1.type = Queue(1, 2, 3, 4, 5, 6, 7, 8, 5, 6, 7, 8)

答案 1 :(得分:0)

请尝试阅读scala api文档以获取更多详细信息: http://www.scala-lang.org/api/current/scala/collection/immutable/Queue.html

一般而言,队列在scala中没有多大用处,因为它们很容易被List替换。

顶部有非常有用的方法。将解决这个问题。