scala的多种集合的使用(7)之集Set的操作方法
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的操作方法的更多相关文章
- scala的多种集合的使用(6)之映射Map的操作方法
1.创建映射 1)创建不可变的映射 scala> val status = Map(1 -> "a",2 -> "b") status: sc ...
- scala的多种集合的使用(1)之集合层级结构与分类
一.在使用scala集合时有几个概念必须知道: 1.谓词是什么? 谓词就是一个方法,一个函数或者一个匿名函数,接受一个或多个函数,返回一个Boolean值. 例如:下面方法返回true或者false, ...
- 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的多种集合的使用(8)之队列和栈的操作方法
1.使用队列 队列是一种那个先进先出的队列.1)创建一个队列. scala> import scala.collection.mutable.Queue import scala.collect ...
- Scala学习笔记--集合类型Queue,Set
补充知识:http://www.importnew.com/4543.html 正文开始 scala.collection.immutable scala.collection.mutable 队列Q ...
- Programming In Scala笔记-第十七章、Scala中的集合类型
本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple. 一.序列 序列类型的对象中包含多个按顺序排列好的元素,可以 ...
随机推荐
- 使用 Moq 测试.NET Core 应用 -- Mock 方法
第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 本文介绍使用Moq来Mock方法. 使用的代码: https://git ...
- 深入浅出一下Java的HashMap
在平常的开发当中,HashMap是我最常用的Map类(没有之一),它支持null键和null值,是绝大部分利用键值对存取场景的首选.需要切记的一点是——HashMap不是线程安全的数据结构,所以不要在 ...
- 多元线性回归公式推导及R语言实现
多元线性回归 多元线性回归模型 实际中有很多问题是一个因变量与多个自变量成线性相关,我们可以用一个多元线性回归方程来表示. 为了方便计算,我们将上式写成矩阵形式: Y = XW 假设自变量维度为N W ...
- [开发技巧]·AdaptivePooling与Max/AvgPooling相互转换
[开发技巧]·AdaptivePooling与Max/AvgPooling相互转换 个人网站--> http://www.yansongsong.cn/ 1.问题描述 自适应池化Adaptive ...
- RDIFramework.NET V3.3 Web版新增报表管理功能模块-重量级实用功能
功能描述 在RDIFramework.NET V3.3 Web版本新增了全新的报表管理功能模块,非常实用的功能,重量级推荐.主要用于对日常常用的报表做定制展示.可以自动发布到模块(就可授权给指定资源访 ...
- java基础(五):谈谈java中的多线程
1.多线程 1.1.多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一 ...
- C# 曲线上的点(二) 获取距离最近的点
如何在一条曲线上,获取到距离指定点最近的点位置? 与上一篇 C# 曲线上的点(一) 获取指定横坐标对应的纵坐标值 类似, 我们通过曲线上获取的密集点,通过俩点之间连线,获取连线上最近的点.我们能够获取 ...
- c# 解决Randoms伪随机重复问题
/// <summary> /// 解决伪随机问题 /// </summary> public static void Random() { ; ; i < ; i++) ...
- 0422作业:基础(if,while)
""" 1.题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10 ...
- Spring Boot 2.X 如何添加拦截器?
最近使用SpringBoot2.X搭建了一个项目,大部分接口都需要做登录校验,所以打算使用注解+拦截器来实现,在此记录下实现过程. 一.实现原理 1. 自定义一个注解@NeedLogin,如果接口需要 ...