scala的多种集合的使用(8)之队列和栈的操作方法
1.使用队列
队列是一种那个先进先出的队列。
1)创建一个队列。
scala> import scala.collection.mutable.Queue
import scala.collection.mutable.Queue scala> 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 = apple scala> 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.Stack scala> 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 = banana scala> fruits
res4: scala.collection.mutable.Stack[String] = Stack(orange, apple, apple)
5)用top方法查看下一个元素。
scala> fruits.top
res5: String = orange scala> fruits
res6: scala.collection.mutable.Stack[String] = Stack(orange, apple, apple)
6)用clear清空一个可变栈。
scala> fruits.clear scala> fruits
res8: scala.collection.mutable.Stack[String] = Stack()
scala的多种集合的使用(8)之队列和栈的操作方法的更多相关文章
- scala的多种集合的使用(1)之集合层级结构与分类
一.在使用scala集合时有几个概念必须知道: 1.谓词是什么? 谓词就是一个方法,一个函数或者一个匿名函数,接受一个或多个函数,返回一个Boolean值. 例如:下面方法返回true或者false, ...
- scala的多种集合的使用(6)之映射Map的操作方法
1.创建映射 1)创建不可变的映射 scala> val status = Map(1 -> "a",2 -> "b") status: sc ...
- scala的多种集合的使用(5)之数组Array(ArrayBuffer)的操作
1.创建和更新数组的不同方式 1)定义一个数组的初始大小和类型,随后填充值. scala> val array = new Array[String](3) array: Array[Strin ...
- scala的多种集合的使用(4)之列表List(ListBuffer)的操作
1.List列表的创建和添加元素 1)最常见的创建list的方式之一. scala> val list = 1 :: 2 :: 3 :: Nil list: List[Int] = List(1 ...
- scala的多种集合的使用(3)之遍历集合的方法
遍历集合的方法 1.用foreach循环遍历一个集合 foreach接收一个函数作为参数.定义的函数应该接收一个元素作为输入参数,然后不要返回任何的东西.输入的参数的类型应该匹配集合中的类型.随着fo ...
- scala的多种集合的使用(2)之集合常用方法
一.常用的集合方法 1.可遍历集合的常用方法 下表列出了Traverable在所有集合常用的方法.接下来的符号: c代表一个集合 f代表一个函数 p代表一个谓词 n代表一个数字 op代表一个简单的操作 ...
- scala的多种集合的使用(7)之集Set的操作方法
1.给集添加元素 1)用+=.++=和add给可变集添加元素. scala> var set = scala.collection.mutable.Set[Int]() set: scala.c ...
- Programming In Scala笔记-第十七章、Scala中的集合类型
本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple. 一.序列 序列类型的对象中包含多个按顺序排列好的元素,可以 ...
- 9、scala函数式编程-集合操作
一.集合操作1 1.Scala的集合体系结构 // Scala中的集合体系主要包括:Iterable.Seq.Set.Map.其中Iterable是所有集合trait的根trai.这个结构与Java的 ...
随机推荐
- Go基础(3)
demo1: package main import "fmt" func print() { for i := 1; i < 10; i++ { for j := 1; j ...
- dubbo源码研究(一)
1. dubbo源码研究(一) 1.1. dubbo启动加载过程 我们知道,现在流行注解方式,用spring管理服务,dubbo最常用的就是@Reference和@Service了,那么我首先找到这两 ...
- Kubernetes 笔记 09 DaemonSet 我是一只看门狗
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. Hi,大家好, ...
- Docker & ASP.NET Core (3):发布镜像
第一篇:把代码连接到容器 第二篇:定制Docker镜像 上一篇文章最后有个问题,定制的镜像无法正常运行: 这可能是由于无法找到要运行的dll引起的问题. 之前的Dockerfile的文档我是按照微软的 ...
- dotnet core开源博客系统XBlog介绍
XBlog是dotnet core平台下的个人博客开源系统,它只需要通过Copy的方式即可以部署到Linux和windows系统中:如果你有安全证书那只需要简单配置一下即可提供安全的Https服务.接 ...
- Jenkins|简单Job配置|启动脚本|测试报告
目录 1.Jenkins安装 2.Jenkins启动脚本 3.节点配置 4.任务配置 5.集成HTML测试报告 1.Jenkins安装 操作环境:Ubuntu jenkins针对windows,ubu ...
- @vue-cli3安装element组件过程
在创建好的项目目录下 执行: vue add element 如图选择对应的选项 安装成功!KO!
- springboot项目容器化
创建一个简单的springboot项目,依赖中加入: 编写一个Restfull接口: 编写启动类: 启动项目,浏览器访问该接口,得到想要的结果.下面,就将这个项目进行Docker容器化(applica ...
- 求求你别用SimpleDateFormat了!
前言 啊哈哈,标题写的比较随意了,其实呢最近在各种面试以及博客中,SimpleDateFormat出镜率确实是比较高了,为什么?其实聪明的你们肯定知道,那必须是有坑呗,是的,那我们就以案例来分析一 ...
- vue.js之动画篇
本文引入类库的方式均采用CND的方式,可直接复制代码到编辑器中学习和测试 不使用动画切换元素 <div id="app"> <input type="b ...