set集是不重复元素的结合。集不保留顺序,默认是以哈希集实现。
如果想要按照已排序的顺序来访问集中的元素,可以使用SortedSet(已排序数据集),已排序的数据集是用红黑树实现的。
默认情况下,Scala 使用的是不可变集合,如果你想使用可变集合,需要引用 scala.collection.mutable.Set 包。
1、Set不可变集合的创建
//默认不可变集合
val set = Set(1, 2, 3)
println(set)
2、Set可变集合的创建
如果import了可变集合,那么后续使用默认也是可变集合
import scala.collection.mutable.Set
val mutableSet = Set(1, 2, 3)
import scala.collection.mutable
val mset1 = mutable.Set(1,2,3)
3、可变集合的元素添加
mset1.add(4)
mset1+= 6
// 注意该方法返回一个新的Set集合,而非在原有的基础上进行添加
val set = mset1.+(7)
val set2 = mset1 + 7
println(set)
println(mset1)
4、可变集合的元素删除
//set 中具体的值
mset1-= 1
println(mset1)
//set 中具体的值
mset1.remove(2)
mset1 remove 5
println(mset1)
5、遍历
for(x <- mset1){
print(x + " ")
}
6、Set更多常用操作
序号 | 方法 | 描述 |
---|---|---|
1 | def +(elem: A): Set[A] | 为集合添加新元素,并创建一个新的集合,除非元素已存在 |
2 | def -(elem: A): Set[A] | 移除集合中的元素,并创建一个新的集合 |
3 | def contains(elem: A): Boolean | 如果元素在集合中存在,返回 true,否则返回 false |
4 | def &(that: Set[A]): Set[A] | 返回两个集合的交集 |
5 | def &~(that: Set[A]): Set[A] | 返回两个集合的差集 |
6 | def ++(elems: A): Set[A] | 合并两个集合 |
7 | def drop(n: Int): Set[A]] | 返回丢弃前n个元素新集合 |
8 | def dropRight(n: Int): Set[A] | 返回丢弃最后n个元素新集合 |
9 | def dropWhile(p: (A) => Boolean): Set[A] | 从左向右丢弃元素,直到条件p不成立 |
10 | def max: A | 查找最大元素 |
11 | def min: A | 查找最小元素 |
12 | def take(n: Int): Set[A] | 返回前 n 个元素 |
尖叫提示:其他操作就不一一列举了,有什么需求,可以通过Scala Api进行查看