1.给集添加元素

1)用+=、++=和add给可变集添加元素。

scala> var set = scala.collection.mutable.Set[Int]()
set: scala.collection.mutable.Set[Int] = Set() scala> set += 1
res48: scala.collection.mutable.Set[Int] = Set(1) scala> set += (2,3)
res49: scala.collection.mutable.Set[Int] = Set(1, 2, 3) scala> set ++= Vector(4,5)
res50: scala.collection.mutable.Set[Int] = Set(1, 5, 2, 3, 4) scala> set.add(6)
res51: Boolean = true scala> set
res52: scala.collection.mutable.Set[Int] = Set(1, 5, 2, 6, 3, 4) scala> set.add(5)
res53: Boolean = false

2)使用+和++方法,通过向前一个集添加元素生成一个新的集。

scala> val set = Set(1,3,5,2,7)
set: scala.collection.immutable.Set[Int] = Set(5, 1, 2, 7, 3) scala> val set1 = set + (8,9)
set1: scala.collection.immutable.Set[Int] = Set(5, 1, 9, 2, 7, 3, 8) scala> val set2 = set1 ++ List(10,11)
set2: scala.collection.immutable.Set[Int] = Set(5, 10, 1, 9, 2, 7, 3, 11, 8)

2.从集中删除元素

1)处理可变集时,用-=和--=从集中删除元素。

scala> var set = scala.collection.mutable.Set(1,2,3,4,5)
set: scala.collection.mutable.Set[Int] = Set(1, 5, 2, 3, 4) scala> set -= 1
res57: scala.collection.mutable.Set[Int] = Set(5, 2, 3, 4) scala> set -= (2,3)
res58: scala.collection.mutable.Set[Int] = Set(5, 4) scala> set --= Array(4,5)
res59: scala.collection.mutable.Set[Int] = Set()

2)处理可变集,retain和clear删除集中元素。

scala> var set = scala.collection.mutable.Set(1,2,3,4,5)
set: scala.collection.mutable.Set[Int] = Set(1, 5, 2, 3, 4) scala> set.retain(_ > 2);println(set)
Set(5, 3, 4) scala> set.clear;println(set)
Set()

3)处理可变集时,remove的返回值可以提示集是否有元素被删除。

scala> var set = scala.collection.mutable.Set(1,2,3,4,5)
set: scala.collection.mutable.Set[Int] = Set(1, 5, 2, 3, 4) scala> set.remove(2);println(set)
Set(1, 5, 3, 4) scala> set.remove(3)
res64: Boolean = true scala> set
res65: scala.collection.mutable.Set[Int] = Set(1, 5, 4)

4)处理不可变集时,可以使用-和--操作符删除元素,同时将结果重新赋给一个新的变量。

scala> val s1 = Set(1,2,3,4,5)
s1: scala.collection.immutable.Set[Int] = Set(5, 1, 2, 3, 4) scala> val s2 = s1 -1
s2: scala.collection.immutable.Set[Int] = Set(5, 2, 3, 4) scala> val s3 = s2 - (2,3)
s3: scala.collection.immutable.Set[Int] = Set(5, 4) scala> val s4 = s3 -- Array(4,5)
s4: scala.collection.immutable.Set[Int] = Set()

3.使用可排序集

1)SortedSet返回元素时有序的。

scala> val s = scala.collection.SortedSet(3,1,2,5,6,9)
s: scala.collection.SortedSet[Int] = TreeSet(1, 2, 3, 5, 6, 9) scala> val s = scala.collection.SortedSet("c","g","a","b")
s: scala.collection.SortedSet[String] = TreeSet(a, b, c, g)

2)LinkedHashSet按照插入顺序保存元素的。

scala> val s = scala.collection.mutable.LinkedHashSet(10,8,3,5,7)
s: scala.collection.mutable.LinkedHashSet[Int] = Set(10, 8, 3, 5, 7)

  

scala的多种集合的使用(7)之集Set的操作方法的更多相关文章

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

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

  2. scala的多种集合的使用(1)之集合层级结构与分类

    一.在使用scala集合时有几个概念必须知道: 1.谓词是什么? 谓词就是一个方法,一个函数或者一个匿名函数,接受一个或多个函数,返回一个Boolean值. 例如:下面方法返回true或者false, ...

  3. scala的多种集合的使用(5)之数组Array(ArrayBuffer)的操作

    1.创建和更新数组的不同方式 1)定义一个数组的初始大小和类型,随后填充值. scala> val array = new Array[String](3) array: Array[Strin ...

  4. scala的多种集合的使用(4)之列表List(ListBuffer)的操作

    1.List列表的创建和添加元素 1)最常见的创建list的方式之一. scala> val list = 1 :: 2 :: 3 :: Nil list: List[Int] = List(1 ...

  5. scala的多种集合的使用(3)之遍历集合的方法

    遍历集合的方法 1.用foreach循环遍历一个集合 foreach接收一个函数作为参数.定义的函数应该接收一个元素作为输入参数,然后不要返回任何的东西.输入的参数的类型应该匹配集合中的类型.随着fo ...

  6. scala的多种集合的使用(2)之集合常用方法

    一.常用的集合方法 1.可遍历集合的常用方法 下表列出了Traverable在所有集合常用的方法.接下来的符号: c代表一个集合 f代表一个函数 p代表一个谓词 n代表一个数字 op代表一个简单的操作 ...

  7. scala的多种集合的使用(8)之队列和栈的操作方法

    1.使用队列 队列是一种那个先进先出的队列.1)创建一个队列. scala> import scala.collection.mutable.Queue import scala.collect ...

  8. Scala学习笔记--集合类型Queue,Set

    补充知识:http://www.importnew.com/4543.html 正文开始 scala.collection.immutable scala.collection.mutable 队列Q ...

  9. Programming In Scala笔记-第十七章、Scala中的集合类型

    本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple. 一.序列 序列类型的对象中包含多个按顺序排列好的元素,可以 ...

随机推荐

  1. Python爬虫入门教程 51-100 Python3爬虫通过m3u8文件下载ts视频-Python爬虫6操作

    什么是m3u8文件 M3U8文件是指UTF-8编码格式的M3U文件. M3U文件是记录了一个索引纯文本文件, 打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放. ...

  2. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十║Vue基础终篇:传值+组件+项目说明

    缘起 新的一天又开始啦,大家也应该看到我的标题了,是滴,Vue基础基本就到这里了,咱们回头看看这一路,如果你都看了,并且都会写了,那么现在你就可以自己写一个Demo了,如果再了解一点路由,ajax请求 ...

  3. Python 闭包小记

    闭包就是能够读取其他函数内部变量的函数.例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“.在本质上,闭包是将函数内部和函数外部连接起来 ...

  4. Spring之旅第一篇-初识Spring

    一.概述 只要用框架开发java,一定躲不过spring,Spring是一个轻量级的Java开源框架,存在的目的是用于构建轻量级的J2EE应用.Spring的核心是控制反转(IOC)和面向切面编程(A ...

  5. qml demo分析(clocks-时钟)

    一.效果展示 效果如图1所示,时钟列表支持鼠标左右拖动,带有黑色背景的是晚上时钟,无黑色背景的是白天时钟 二.源码分析 1.main.cpp文件中只包含了一个宏,该宏的具体解释请看qml 示例中的关键 ...

  6. jdk切换小工具

    今天无意之中看到一个小工具,就是可以自由切换jdk版本!以前每次切换jdk还要去找环境变量找半天,emmm.... 现在我们只需要双击一个xxx.bat的一个批处理文件,就可以自由切换jdk版本,很方 ...

  7. java的spi 的简单应用

    1.什么是java的spi SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制. 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一 ...

  8. 深入理解Linux内核 学习笔记(2)

    第二章 :内存寻址 略.基本同计算机组成原理中的讲述 内核代码和数据结构会存储在一个保留的页框中. 常规Linux安装在RAM物理地址0x00100000开始的地方.因为:页框0是由BIOS使用,存放 ...

  9. c# aes,des,md5加密等解密算法

    一:可逆加密,即是能加密也能解密 对称可逆加密:加密后能解密回原文,加密key和解密key是一个 加密算法都是公开的,密钥是保密的, 即使拿到密文 你是推算不了密钥 也推算不了原文 加密解密的速度快, ...

  10. MySQL 笔记整理(19) --为什么我只查一行的语句,也执行这么慢?

    笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 19) --为什么我只查一行的语句,也执行这么慢? 需要说明一下,如果M ...