队列的说明
- 队列是一个有序的列表,在底层可以用数组或是链表来实现
- 其输入和输出要遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出
- 在Scala中,由设计者直接给我们提供队列类型使用
- 在Scala中,有
scala.collection.mutable.Queue 和 Scala.collection.immutable.Queue 一般来说我们在开发中使用可变集合中的队列
Queue的创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| object QueueDemo { def main(args: Array[String]): Unit = { val myqueue = new mutable.Queue[Int] println(myqueue)
myqueue += 1 myqueue ++= mutable.ListBuffer[Int](1, 23, 4) println(myqueue) } }
|
队列元素的增删
按照进入队列的顺序删除元素(队列先进先出)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| object QueueDemo { def main(args: Array[String]): Unit = { val myqueue = new mutable.Queue[Int] println(myqueue)
myqueue += 1 myqueue ++= mutable.ListBuffer[Int](1, 23, 4) println(myqueue) println("------------------------") println("删除的元素为:" + myqueue.dequeue() + "删除后的队列" + myqueue) println("------------------------") println("新增前队列的元素" + myqueue + "新增后队列的元素" + myqueue.enqueue(99, 100, 99, 101)) } }
|
在队列中严格遵守入队列的数据放在队尾,出队列的数据是从队列的头部开始选取的
返回队列的元素
返回队列的第一个元素
返回队列的最后一个元素
返回队列的尾部(即:返回除了第一个以外剩余的元素,可以级联使用,这个在递归时使用较多)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| object QueueDemo { def main(args: Array[String]): Unit = { val myqueue = new mutable.Queue[Int] println(myqueue)
myqueue += 1 myqueue ++= mutable.ListBuffer[Int](1, 23, 4) println(myqueue) println("------------------------") println("删除的元素为:" + myqueue.dequeue() + "删除后的队列" + myqueue) println("------------------------") println("新增前队列的元素" + myqueue + "新增后队列的元素" + myqueue.enqueue(99, 100, 99, 101)) println("=======================") println("队列的第一个元素为=" + myqueue.head)
println("队列的最后一个元素为=" + myqueue.last) println(myqueue.tail) println(myqueue.tail.tail) } }
|