1.使用队列

队列是一种那个先进先出的队列。
1)创建一个队列。

scala> import scala.collection.mutable.Queue
import scala.collection.mutable.Queuescala> var fruits = Queue[String]()
fruits: scala.collection.mutable.Queue[String] = Queue()scala> fruits += "apple"
res66: scala.collection.mutable.Queue[String] = Queue(apple)scala> fruits += ("orange","banana")
res67: scala.collection.mutable.Queue[String] = Queue(apple, orange, banana)scala> fruits ++= List("cherry","cocount")
res68: scala.collection.mutable.Queue[String] = Queue(apple, orange, banana, cherry, cocount)scala> fruits.enqueue("pine")scala> fruits
res70: scala.collection.mutable.Queue[String] = Queue(apple, orange, banana, cherry, cocount, pine)

2)dequeue每次从队列头部删除一个元素。

scala> val next = fruits.dequeue
next: String = applescala> fruits
res72: scala.collection.mutable.Queue[String] = Queue(orange, banana, cherry, cocount, pine)

3)dequeueFirst和dequeueAll方法可以从队列中删除多个元素。

scala> var fruits = Queue[String]()
fruits: scala.collection.mutable.Queue[String] = Queue()scala> fruits ++= List("cherry","cocount")
res76: scala.collection.mutable.Queue[String] = Queue(cherry, cocount)scala> fruits ++= List("orange","apple")
res77: scala.collection.mutable.Queue[String] = Queue(cherry, cocount, orange, apple)scala> fruits.dequeueFirst(_.startsWith("a"))
res79: Option[String] = Some(apple)scala> fruits
res80: scala.collection.mutable.Queue[String] = Queue(cherry, cocount, orange)scala> fruits.dequeueAll(_.length > 6)
res81: scala.collection.mutable.Seq[String] = ArrayBuffer(cocount)scala> fruits
res82: scala.collection.mutable.Queue[String] = Queue(cherry, orange)

2.使用栈

栈是一种后进先出的数据结构。用push方法将元素入栈,用pop方法将元素出栈。
1)创建一个任意数据类型空的可变栈。

scala> import scala.collection.mutable.Stack
import scala.collection.mutable.Stackscala> var ints = Stack[Int]()
ints: scala.collection.mutable.Stack[Int] = Stack()

2)在创建时给栈初始元素。

scala> val ints = Stack(1,2,3)
ints: scala.collection.mutable.Stack[Int] = Stack(1, 2, 3)

3)用push方法向栈中填充元素。

scala> var fruits = Stack[String]()
fruits: scala.collection.mutable.Stack[String] = Stack()scala> fruits.push("apple")
res2: scala.collection.mutable.Stack[String] = Stack(apple)scala> fruits.push("apple","orange","banana")
res3: scala.collection.mutable.Stack[String] = Stack(banana, orange, apple, appl

4)用pop方法将元素出栈。

scala> val next = fruits.pop
next: String = bananascala> fruits
res4: scala.collection.mutable.Stack[String] = Stack(orange, apple, apple)

5)用top方法查看下一个元素。

scala> fruits.top
res5: String = orangescala> fruits
res6: scala.collection.mutable.Stack[String] = Stack(orange, apple, apple)

6)用clear清空一个可变栈。

scala> fruits.clearscala> fruits
res8: scala.collection.mutable.Stack[String] = Stack()

  

转载于:https://www.cnblogs.com/zhaohadoopone/p/9534996.html

scala的多种集合的使用(8)之队列和栈的操作方法相关推荐

  1. scala的多种集合的使用(6)之映射Map的操作方法

    1.创建映射 1)创建不可变的映射 scala> val status = Map(1 -> "a",2 -> "b") status: sc ...

  2. Scala与Java集合互转摘要

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  3. scala学习笔记-集合操作(15)

    Scala的集合体系结构 1 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的集合体系非常相似 ...

  4. Scala 中的集合(三):实现一个新的 Collection 类

    本文由 Yison 发表在 ScalaCool 团队博客. Scala 中的 collection 库是符合 DRY 设计原则的典范,它包含了大量通用的集合操作 API,由此我们可以基于标准库,轻松构 ...

  5. 【Scala】Scala中常见集合的使用---代码详解

    1.List集合的使用及创建 object ListDemo1 {def main(args: Array[String]): Unit = {//创建一个Listval list: List[Int ...

  6. Scala中的集合排序

    Scala中的集合排序 在scala中,排序不再像java中的那么复杂,除了Map之外,其他的集合类型都可以使用自己的排序方法,排序方法主要有三个: 1.sorted 2.sortWith 3.sor ...

  7. Scala编程基础——集合高阶函数

    Scala编程基础--集合&高阶函数 集合 Scala中集合分为可变集合和不可变集合 可变集合:可以修改.添加.移除一个集合的元素. 不可变集合:安全的并发访问. 不可变集合,相比之下,永远不 ...

  8. 【C++ 语言】容器 ( queue 队列 | stack 栈 | priority_queue 优先级队列 | set 集合 | 容器遍历 | map )

    文章目录 queue 队列 stack 栈 priority_queue 优先级队列 priority_queue 优先级队列指定排序方法 priority_queue 优先级队列排序行为 prior ...

  9. Java基础加强重温_05:Iterator迭代器、增强for循环、集合综合案例-斗地主、数据结构(栈、队列、数组、链表、红黑树)、List接口、Set接口

    摘要: Java基础加强重温_05: Iterator迭代器(指针跟踪元素). 增强for循环(格式.底层). 集合综合案例-斗地主(代码规范抽取代码,集合元素打乱). 数据结构[栈(先进后出,子弹夹 ...

最新文章

  1. 关于学习Python的一点学习总结(44->类中的比较操作符号重写)
  2. 每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒?
  3. 直方图均衡化算法 matlab,matlab程序_retinex_frankle_mccann+直方图均衡化_去雾算法
  4. 正则表达式贪婪与非贪婪模式
  5. html背景动起来,CSS+HTML 循环滚动背景效果
  6. kafka生产数据时的应答机制(ACK)
  7. python关于文件的一些记录
  8. 打开终端报错:bash: /某路径/bashrc: No such file or directory
  9. (二十一)美萍酒店管理系统:系统维护_系统设置_房间类型_房间费打折
  10. 如何使用phpDesigner 编写一个表格
  11. 宿命java_昆仑奇侠传外传之宿命篇
  12. UI设计中,颜色的搭配
  13. Java 开发flink流/批处理程序
  14. 一篇文章让你彻底了解算法的时间复杂度O(n)!!!
  15. 麦克劳林公式怎么记忆_怎么背麦克劳林公式?
  16. 识别图片上的文字,如何在线识别?
  17. 21天减肥法反弹案例-987减肥网
  18. 关闭Chrome浏览器的自动更新和升级提示
  19. PWM互补脉冲配置,互补输出异常
  20. 用CSS定义每段首行缩进2个字符

热门文章

  1. Bottles Arrangement
  2. excel上传到linux乱码,上载excel文件名字乱码有关问题处理
  3. 回归插补法_用均值替换、 回归插补及多重插补进行插补
  4. 图片上传成功但是图片显示不出来_小程序上传图片到腾讯云
  5. python 面向对象_Python新手入门【面向对象】
  6. 组态王与c语言混合编程6,亚控 组态王嵌入版6.1
  7. vant UI库组件, 与HTML 标签冲突
  8. python创造者_python 设计模式-建造者模式
  9. 网站SEO优化如何讨好搜索引擎蜘蛛?
  10. 5弹出搜索框_实用小技巧,电脑总是弹出广告,手把手教你永久关闭广告弹窗...