您的位置:首页 > 产品设计 > UI/UE

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

2015-09-19 13:47 387 查看
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)

}
}


以上内容是从王家林老师DT大数据课程第39讲的学习笔记和个人整理。

DT大数据微信公众账号:DT_Spark

王家林老师QQ:1740415547

王家林老师微信号:18610086859

第39讲视频网站地址:http://pan.baidu.com/s/1c02M7IS
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: