scala 数据结构(五):队列 Queue
2024-09-07 18:35:49
1 队列 Queue-基本介绍
队列的说明
1)队列是一个有序列表,在底层可以用数组或是链表来实现。
2)其输入和输出要遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出
3)在Scala中,由设计者直接给我们提供队列类型使用。
4)在scala中, 有 scala.collection.mutable.Queue 和 scala.collection.immutable.Queue , 一般来说,我们在开发中通常使用可变集合中的队列。
2 队列 Queue-队列元素的追加数据
向队列中追加单个元素和List
val q1 = new Queue[Int]
q1 += 20 // 底层?
println(q1) q1 ++= List(2,4,6) //
println(q1) //q1 += List(1,2,3) //泛型为Any才ok
println(q1)
//补充操作符重载...
val cat = new Cat
println(cat.age)
cat += 9
println(cat.age)
class Cat {
var age: Int = 10
def +=(n:Int): Unit = {
this.age += n
println("xxx")
}
}
3 队列 Queue-删除和加入队列元素
按照进入队列的顺序删除元素(队列先进先出)
val q1 = new mutable.Queue[Int]//
q1 += 12
q1 += 34
q1 ++= List(2,9)
q1.dequeue() //队列头
println(q1)
q1.enqueue(20,60) //队列位
println(q1)
4 队列 Queue-给队列添加元素
说明
按照队列的算法,会将数据添加到队列的最后。
应用案例
q1.enqueue(9, 8, 7)
println(q1)
5 队列 Queue-返回队列的元素
返回队列的第一个元素
println(q1.head)
返回队列最后一个元素
println(q1.last)
返回队列的尾部
即:返回除了第一个以外剩余的元素, 可以级联使用,这个在递归时使用较多。
println(q1.tail)
println(q1.tail.tail)
最新文章
- Java基本数据类型总结
- repo 修改邮箱地址
- Web APi之手动实现JSONP或安装配置Cors跨域(七)
- jira的使用
- 关于ubuntu16.4 中安装最新的eclipse或者是STS出现页面特卡,且新建项目没有提示,preference选项中点击左侧标签右侧没反应的解决办法,参照google, 排版不太好,希望对一些小伙伴有所帮助
- SqlServer链接MySql操作步骤
- win平台检查内存泄露
- java入门第三步之数据库连接【转】
- C#调用SSIS包及读取DataReader目标
- poj 3278 Catch That Cow 优化深搜
- 为mapcontrol中的图层设置透明度
- globalfifo设备驱动
- Threading
- Python 模块功能paramiko SSH 远程执行及远程下载
- sed与正则用法收集
- java基础,集合,Arraylist,源码解析(基础)
- TensorLayer官方中文文档1.7.4:API – 可视化
- kafka HA
- .NET Core TDD 前传: 编写易于测试的代码 -- 单一职责
- Python _内置函数3_45
热门文章
- js实现点击切换checkbox背景图片
- Laravel中Homestead添加多站点时遇到问题
- Nice Jquery Validator 自定义规则
- VMWare12安装CentOS7操作系统并搭建GitLab环境【1】
- ZooKeeper使用入门
- 在tp5.1中获取所有控制器的文件名和所有控制器下的方法名
- opencv3.1.0 计算机中丢失 opencv_world310d.dll _vs2017解决方法
- go 项目目录结构
- cc26a_demo-CppPrimer_动态绑定_多态-代码示范
- 腾讯云Redis混合存储版重磅推出,万字长文助你破解缓存难题!