Scala深入浅出实战经典:39,ListBuffer、ArrayBuffer、Queue、Stack操作代码实战

本文深入探讨了Scala中ListBuffer、ArrayBuffer、Queue与Stack的基本操作,包括如何追加元素、入队、出队等核心功能。通过实战案例,清晰展示了这些集合在实际开发中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.dt.scalaInAction.demo_039

import scala.collection.mutable.ListBuffer
import scala.collection.mutable.ArrayBuffer
import scala.collection.immutable.Queue
//import scala.collection.mutable.Queue

/**
 * ListBuffer、ArrayBuffer、Queue、Stack操作代码实战
 */
object ListBuffer_ArrayBuffer_Queue_Stack_Ops {
    def main(args: Array[String]): Unit = {
      
        //ListBuffer
        val listBuffer = new ListBuffer[Int]() //scala.collection.mutable.ListBuffer
        //追加元素  +  def += (x: A): this.type
        listBuffer += 1
        listBuffer += 2
        println(listBuffer)   //ListBuffer(1, 2)

        //ArrayBuffer
        val arrayBuffer = new ArrayBuffer[Int]() //scala.collection.mutable.ArrayBuffer
        //追加元素   + def +=(elem: A): this.type  用法和ListBuffer类似
        arrayBuffer += 1
        arrayBuffer += 2
        println(arrayBuffer) //ArrayBuffer(1, 2)
        
        //scala.collection.immutable.Queue
        val queue = Queue[Int]()  //scala.collection.immutable.Queue   这是一个不可变的队列
        //入队列操作 enqueue
        val queue1 = queue.enqueue(1)
        println(queue1)   //Queue(1)
        //enqueue 一个集合
        val queue2 = queue.enqueue(List(2, 3, 4, 5))      
        println(queue2)   //Queue(2, 3, 4, 5)
        //出队列操作 dequeue  def dequeue: (A, Queue[A])
        val (element, left) = queue2.dequeue 
        println("element="+element) //element=2
        println("left="+left)       //left=Queue(3, 4, 5)
        
        //scala.collection.mutable.Queue
        val queueBuffer = scala.collection.mutable.Queue[String]()
        //入队 +
        queueBuffer += "a"
        //入队 集合 ++
        queueBuffer ++= List("b", "c")
        println("queueBuffer="+queueBuffer); //queueBuffer=Queue(a, b, c)
        //出队列  def dequeue(): A  直接返回出队元素
        //注意:与scala.collection.immutable.Queue的dequeue不同 immutable.Queue的dequeue返回一个元祖(出队的元素, 改变之后的队列)
        println("dequeue return"+queueBuffer.dequeue) //a
        println(queueBuffer) //Queue(b, c)

        //mutable Stack
        val stack = new scala.collection.mutable.Stack[Int]
        //入栈
        stack.push(1)
        stack.push(2)
        stack.push(3)
        println(stack)      //Stack(3, 2, 1)
        //top 去除栈顶元素 但不做出栈操作
        println(stack.top)  //3
        println(stack)      //Stack(3, 2, 1)
        //pop 去除栈顶元素 但做出栈操作
        println(stack.pop)  //3
        println(stack)      //Stack(2, 1)
        
        
    
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值