代码示例:
package com.dt.scala.dataset import scala.collection.immutable.Queue object ListBuffer_ArrayBuffer_Queue_Stack { def main(args: Array[String]): Unit = { // List 是不可变的,一旦声明,并不能修改变量引用的List的内容 //scala 提供了ListBuffer 可变列表 import scala.collection.mutable.ListBuffer val lb = new ListBuffer[Int]() lb += 1 lb +=2 // 请注意,我们将lb定义成常量,lb +=1 并不是改变lb的值,而是改变lb指向的列表的值 println(lb) //ListBuffer(1, 2) // Array 同样也是不可变数组,ArrayBuffer是可变数组 import scala.collection.mutable.ArrayBuffer val ab = new ArrayBuffer[Int]() ab.+=(1) ab += 2 println(ab) //ArrayBuffer(1, 2) //Queue 是一个对象 val queue = Queue[Int]() // 向队列中插入数据 queue.enqueue(1) //此时queue仍然为空,因为Queue是不可变集合 println(queue) //Queue() val queue1 = queue.enqueue(1) //我们看看可变Queue import scala.collection.mutable.Queue val queue2 = Queue[Int]() queue2.enqueue(1) println(queue2) //Queue(1) queue2.enqueue(2) queue2.enqueue(3) //Queue(1,2, 3) //Queue 是先进先出 println(queue2.dequeue()) //1 println(queue2) //Queue(2, 3) import scala.collection.mutable.Stack val stack = Stack[Int]() stack.push(1) //一次放入多个元素 stack.push(2, 3, 4) println(stack) //Stack(4, 3, 2, 1) println(stack.top) // top 函数取堆中的最上面的值,但是并不从堆中删除数据 println(stack) //Stack(4, 3, 2, 1) println(stack.pop()) // 从堆中取出最上面数据 println(stack) //Stack(3, 2, 1) } }