第39講:ListBuffer、ArrayBuffer、Queue、Stack操作代碼實戰

代碼示例:

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)   
    
  }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章