Set集合
* 特点
* 元素不重复且无序
* 分类
* 可变Set和不可变Set
*
import scala.collection.mutable
/*
* Set集合
* 特点
* 元素不重复且无序
* 分类
* 可变Set : 对象初始化后,元素个数和内容可以修改,修改后对象不会改变,也不会产生新的对象
*
* 不可变Set : 对象一旦被初始化后,元素个数和内容 将不会改变
* set - e 或者 set + e 会产生新的set,原对象不会改变
*
*
* */
//不可变set
object setTest extends App {
//1.初始化
var set1: Set[Int] = Set[Int](1, 2, 3, 4, 4, 4, 5, 0, 99)
//2.打印
println(set1)
//3.添加元素( 调用对象不改变,返回新对象)
//尾部添加
var set2 = set1 + 100 //底层调用incl方法 //产生了新的对象,原对象不会改变
var set3 = set1.incl(100)
println(set2)
println(set3)
println("======================")
//4.删除元素(指定元素值)
var set4 = set1 - 100 //底层调用excl方法
var set5 = set1.excl(5)
println(set4)
println(set5)
//5.遍历set
for (e <- set1) {
println(e)
}
//6.foreach
set1.foreach(println)
println("=============")
//集合并集(返回新集合)
var set6 = Set(1, 2, 3, 4, 5)
var set7 = Set(3, 4, 5, 6, 7)
var set8 = set6 ++ set7
var set9 = set6.concat(set7)
println(set8)
println(set9)
println(set6)
println(set7)
println("===============")
//集合交集(返回新集合)
var set10 = set6 & set7
var set11 = set6.intersect(set7)
println(set10)
println(set11)
}
//可变set (需要导包)
object setTestVar extends App {
//1.初始化
var set1 = mutable.Set(1, 2, 3, 3, 3)
//2.添加元素(改变调用集合对象)
set1 += 4
set1.addOne(5) //不会产生新的对象
println(set1)
//3.添加元素(不改变调用集合对象)
var set2 = set1 + 6
println(set1)
//4.删除元素(改变调用自身对象)
set1 -= 5
set1.subtractOne(4)
println(set1)
//5.打印集合
println(set1.mkString("-"))
}