我想将另一个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((), (), (), ())
你有什么想法吗?
答案 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替换。
顶部有非常有用的方法。将解决这个问题。