当前内容主要用于本人学习和复习,当前内容主要为测试Set集合的使用
当前内容借鉴:菜鸟教程
当前的Set集合可以分为两种:
scala.collection.mutable.Set
scala.Set
该操作可以存在可变和不可变的Set集合的操作
1.创建Set集合:
var 变量=Set()
(创建空的Set集合)var 变量=Set[类型]()
var 变量=Set[类型](初始化数据)
var 变量:Set[类型]=Set[类型](初始化值)
var set = Set(1, 2, 3, 4, 5); // Set集合存储不重复的数据
var s: Set[Nothing] = Set(???); // Nothing一般对应???
var sqlOption: Set[String] = Set[String]("insert", "update", "delete", "select");
var emptySet = Set();
2.查看基本的属性
println(set); // 默认无序
println(set.drop(1)); // 和当前的List集合使用方式完全一致,删除左边的第一个元素,1表示的是删除元素的个数
println(set.contains(6)); // 判断集合是否包含6
println(set.exists(_ == 1));
println(set.dropWhile(_ == 1)); // 用法和List一致
println(set.size); // 默认使用不可变的Set集合
println(set(3)); // 判断元素是否存在当前集合,true
可以通过contains判断某个元素是否存在,通过size获取集合长度,这些基本和List使用方式一致,但是set可以通过名称(值)方式判断是否存在该数据
4.添加数据操作:+=
和.+(element)
// 添加数据操作
set += 999;
println(set); // 可以使用+=方式添加数据
set.+(888); // 返回一个新的集合
set = set.+(777);
println(set); // 可以使用赋值方式添加数据
5.删除数据操作:-=
和.-(element)
// 删除数据操作
set -= 999;
set = set.-(777);
println(set);
6.集合的基本操作:交集,并集,差集
// 集合的基本操作
var A = Set(1, 2, 3, 4, 5);
var B = Set(1, 2, 3, 4, 8, 9);
// 1.合并两个集合
println("A:" + A);
println("A与B的并集:" + A.++(B));
// 2.获取两个集合的交集
println("A:" + A);
println("A与B的交集:" + A.intersect(B));
println("A与B的交集:" + A.&(B));
// 3.差集
println("A与B的差集:" + A.&~(B)); // 等同于下面
println("既不在A中也不在B中的元素:" + A.--(B));
7.find和filter方法
// 查找3
println(set.find(_ == 2)); // 不存在返回None,如果元素不存在就返回None
println(set.find(_ == 5)); // 存在返回Some(5)// 表示集合存在的元素的时候返回的值
println(null == None); // false
// 查找4
println(set.filter(_ != 5)); // 返回结果为Set集合
import scala.collection.mutable.{ Set => ModifySet }
/**
* @description 测试和使用可以修改的Set集合
* @author hy
* @date 2020-06-27
*/
object ModifySetTest {
var set = ModifySet(1, 2, 3, 4, 5, 6);
var strSet: ModifySet[String] = ModifySet();
def main(args: Array[String]): Unit = {
set.add(5); // 添加数据
println("添加元素5后的set=" + set);
set.remove(5); //移除一个元素
println("删除元素5后的set=" + set);
// 让集合中的后面追加元素5,效果等同于add方法
set += 5;
println("set+=5的结果为:" + set);
// 让集合的元素中移除一个元素2
set -= 2;
println("set-=2的结果为:" + set);
//
//set(5) = false;// 表示移除set集合中的5
set.update(5, false);// 表示移除
//添加元素
set(8)=true;
// set.update(8,true) //
println("set:" + set);
// 不同点就是当前的set提供了一个add和remove方法实现添加和删除操作
}
}
通过测试发现当前可以使用add方法和remove方法进行添加删除操作
可以通过:import 包名.{类名=>别名},方式在当前scala中使用别名操作
1.当前的Scala中的Set集合分为可变集合和不可变集合,使用不同的类
2.使用Set中存在一些公共的操作方法比如:contains,filter,find等
3.不可变Set集合操作只是提供了添加和删除操作(提供了方法)
以上纯属个人见解,如有问题请联系本人!