2016-11-24 108 views
-1

我想入队到一个Scala队列另一个Scala队列。喜欢的东西:入队到一个Scala队列另一个Scala队列

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 [单位]象下面这样:

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

你有什么想法吗?

回答

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) 
+0

不是真正需要可变的:)更新到需求。 – Pavel

+0

啊,你是对的,不同的方法,虽然:))谢谢你的头。 – chipz

0

请尝试阅读Scala的API文档了解更多信息: http://www.scala-lang.org/api/current/scala/collection/immutable/Queue.html

和一般的队列中没有在斯卡拉多大用处,因为他们很容易可以用列表来代替。

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

+0

由于它的工作象一个魅力 –

+0

++ [B](即:GenTraversableOnce [B]):队列[B] [用例] 返回一个新的不可变队列,其中包含来自左侧操作数的元素,后面跟着右侧操作数的元素。不可变队列的元素类型是包含两个操作数的元素类型的最具体的超类。 这是来自文档页面。顶级方法。 – Pavel

+0

请确保您将答案标记为已回答! :)) – Pavel

相关问题