开发者学堂课程【Scala 核心编程 - 进阶:Queue 的创建和追加元素】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9036
Queue 的创建和追加元素
内容介绍:
一、Queue 队列的创建
二、向队列中追加单个元素和 List
三、补充说明有关重载的知识点
四、复习上节
一、Queue 队列的创建
1.格式:
import scala.collection.mutable
val q1 = new mutable.Queue[int]
print(q1)
2.说明:
这里的 int 是泛型,表示 q1 队列只能存放 int 类型
如果希望 q1 可以存放其他类型,则使用 Any 即可
3.实例:
import scala.collection.mutable
//引入对应的包,才能进行入队列和删除队列的操作,否则只能进行查看队列头尾这种简单的操作
object QueneDemo01{
def main(args: Array[String]):Unit ={
val q1 = new mutable.Queue[int]
println(q1)
}
}
运行结果:
Queue()
Process finished with exit code 0
二、向队列中追加单个元素和 List
用 += 、 ++= 或者 +=list(int)来实现向队列中追加单个元素
1.案例演示:
第一种:
val q1 = new Queue[int]
q1 += 20
//对 Queue 队列直接进行变化,直接加元素,底层增加
println(q1)
第二种:
q1++= List(2,4,6) //将该队列中的集合打开直接向队列中放
println(q1)
第三种:
//q1+= List(1,2,3)
//将整个队列向 Queue 队列中放,也就是将 List(1,2,3) 当作一个//元素
//泛型为 Any 才可以
//println(q1)
2.代码实现:
import scala.collection.mutable
object QueneDemo01{
def main(args: Array[String]):Unit ={
val q1 = new mutable.Queue[int]
println(q1)
q1 +=9
println(“q1=”+q1)
q1++=List(4,5,7) //加入队列的方式默认直接加在队列的后面
println(“q1=”+q1)
}
}
运行结果如下:
Queue()
Q1=Queue(9)
Q1=Queue(9,4,5,7)
Process finished with exit code 0
如果再加q1 +=List(10,0)在后面,如下
import scala.collection.mutable
object QueneDemo01{
def main(args: Array[String]):Unit ={
val q1 = new mutable.Queue[Any]
//将原来的 int 改为 Any
println(q1)
q1 +=9
println(“q1=”+q1)
q1++=List(4,5,7)
println(“q1=”+q1)
q1 +=List(10,0)
//表示将 List(10,0) 作为一个元素加入到队列中
println(“q1=”+q1) //结果为(9,4,5,7,List(10,0))
}
}
三、补充说明有关重载的知识点
操作符的重载如何实现:
(如何++一个对象)
object operatorOverload {
def main( args : Array [string]): unit = {
val cat = new cat //创建一个 cat
cat + 10
println("cat.age=”+ cat.age)}
class cat {
var age = 0 //属性年龄默认为0
def +(n: Int) : unit = { //支持加法
this.age += n
}
}
运行结果为:
Cat.age-p
Process finished with exit code 0
注意:cat+10等价于 cat.+(9)
四、复习上节
1)队列是一个有序列表,在底层可以用数组或是链表来实现。
2)其输入和输出要遵循先入先出的原则(没有带优先级)。即:先存入队列的数据,要先取出,后存入的要后取出。
3)在 Scala 中,由设计者直接给我们提供队列类型使用。
4)在 Scala 中,有两种队列,
分别是 scala.collection.mutalble.Queue (可变队列)和
scala.collection.immutable.Queue(不可变队列),一般来说,我们在开发中通常使用可变集合中的队列。队列不能变化的话意义不大,除非有队列不变这个要求.