大数据系列修炼-Scala课程39
核心内容:
1、ListBuffer、ArrayBuffer、Queue、Stack操作代码实战
1、ListBuffer、ArrayBuffer、Queue、Stack操作代码实战 |
1>ListBuffer、ArrayBuffer分别是List与Array的新版本,在ListBuffer、ArrayBuffer中可以对List与Array进行更加灵活、高效的操作;
Queue(对列)与Stack(堆)是两种经典的数据结构。
2>用+=可以向集合当中添加具体的元素,用++=可以向集合当中添加具体的集合(List或Array)。
实例程序:
object App
{
//本节的重点是掌握ListBuffer、ArrayBuffer、Queue队列、Stack堆的操作
def main(args:Array[String]):Unit=
{
import scala.collection.mutable.ListBuffer
val listBuffer = new ListBuffer[Int]() //需要指定集合的类型
listBuffer += 10
listBuffer ++= List(20,30,40)
val str1 = listBuffer.mkString("\t")
println(str1)//10 20 30 40
import scala.collection.mutable.ArrayBuffer
val arrayBuffer = new ArrayBuffer[Int]()
arrayBuffer += 10
arrayBuffer ++= Array(20,30,40)
val str2 = arrayBuffer.mkString("\t")
println(str2)//10 20 30 40
//队列本身有可变的与不可变的,在这里仅测试可变的队列
import scala.collection.mutable.Queue
val queue = Queue.apply[Int]() //队列只能通过伴生对象创造实例对象
queue += 10
queue ++= List(20,30,40)
println(queue.mkString("\t")) //10 20 30 40
val ele1 = queue.dequeue() //从队列当中返回1个元素
println(ele1) //10先进来的先出去
println(queue) //还剩Queue(20, 30, 40)
//测试堆Stack
import scala.collection.mutable.Stack
val stack = new Stack[Int]()
stack.push(10)
stack.push(20)
stack.push(30)
println(stack.mkString("\t"))//30 20 10
println(stack.top)//30 top仅查看,不弹出
println(stack)//Stack(30, 20, 10)
println(stack.pop())//30 pop既查看,又弹出
println(stack) //Stack(20, 10)
}
}