代碼示例:
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) } }