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