scala中Set集合大全

美图欣赏:
scala中Set集合大全_第1张图片
一.Set

无序,不可重复。

Scala集合有三个基本操作:

  • head 返回集合第一个元素
  • tail 返回一个集合,包含除了第一元素之外的其他元素
  • isEmpty 在集合为空时返回true

二.代码演示

A: 不可变Set

1.创建一个Set集合(默认是不可变的Set集合)

scala> val set1 = Set(1,2,3)
set1: scala.collection.immutable.Set[Int] = Set(1, 2, 3)

2.操作符 + ,添加一个元素

scala> set1 + 4
res0: scala.collection.immutable.Set[Int] = Set(1, 2, 3, 4)

3.添加后不改变原有Set集合

scala> set1
res1: scala.collection.immutable.Set[Int] = Set(1, 2, 3)

4.Set是不可重复的

scala> val set2 = Set(4,5,6,7,4,5)
set2: scala.collection.immutable.Set[Int] = Set(4, 5, 6, 7)

5.Set里面可以添加不同类型的元素

scala> val set3 = Set("aa","bb",1,3,2,2.5)
set3: scala.collection.immutable.Set[Any] = Set(1, 2, 3, aa, bb, 2.5)

6.俩不同的Set进行相加

			scala> val set1 = Set(1,2,3)
			set1: scala.collection.immutable.Set[Int] = Set(1, 2, 3)

			scala> val set2 = Set(4,5,6)
			set2: scala.collection.immutable.Set[Int] = Set(4, 5, 6)

			scala> set1 ++ set2
			res0: scala.collection.immutable.Set[Int] = Set(5, 1, 6, 2, 3, 4)

7.查看Set 类型和属性

scala> set1.getClass
res4: Class[_ <: scala.collection.immutable.Set[Int]] = class scala.collection.immutable.Set$Set3

B: 可变Set集合

1.需要自己手动导包

scala> import scala.collection.mutable.HashSet
import scala.collection.mutable.HashSet

2.创建一个空的,可变Set

scala> val set3 = new HashSet[Int]()
set3: scala.collection.mutable.HashSet[Int] = Set()

3.添加元素

scala> set3 +1
res5: scala.collection.mutable.HashSet[Int] = Set(1)

scala> set3 += 2
res6: set3.type = Set(2)

scala> set3 += 3
res7: set3.type = Set(2, 3)

4.俩个不同Set,进行合并

scala> set1
res10: scala.collection.immutable.Set[Int] = Set(1, 2, 3)

scala> set3
res11: scala.collection.mutable.HashSet[Int] = Set(1, 2, 3)


scala> set3 ++= set1
res9: set3.type = Set(1, 2, 3)

5.Set中元素进行移除操作

scala> set3 -= 1
res14: set3.type = Set(2, 3)

scala> set3.remove(2)
res16: Boolean = true

scala> set3
res17: scala.collection.mutable.HashSet[Int] = Set(3)

Scala集合有三个基本操作:

1.head 返回集合第一个元素
tail 返回一个集合,包含除了第一元素之外的其他元素
isEmpty 在集合为空时返回true

object Test {
     
   def main(args: Array[String]) {
     
      val site = Set("1000phone", "Google", "Baidu")
      val nums: Set[Int] = Set()

      println( "第一网站是 : " + site.head )
      println( "最后一个网站是 : " + site.tail )
      println( "查看列表 site 是否为空 : " + site.isEmpty )
      println( "查看 nums 是否为空 : " + nums.isEmpty )
   }
}

查找集合中最大与最小元素

可以使用 Set.min 方法来查找集合中的最小元素,使用Set.max 方法查找集合中的最大元素

object Test {
     
   def main(args: Array[String]) {
     
      val num = Set(5,6,9,20,30,45)
       //set集合遍历
       for(x <- num) {
     
        println(x)
        }
      // 查找集合中最大与最小元素
      println( "Set(5,6,9,20,30,45) 集合中的最小元素是 : " + num.min )
      println( "Set(5,6,9,20,30,45) 集合中的最大元素是 : " + num.max )
   }
}

交集

可以使用 Set.&方法或 Set.intersect 方法来查看两个集合的交集元素

object Test {
     
   def main(args: Array[String]) {
     
      val num1 = Set(5,6,9,20,30,45)
      val num2 = Set(50,60,9,20,35,55)

      // 交集
      println( "num1.&(num2) : " + num1.&(num2) )
      println( "num1.intersect(num2) : " + num1.intersect(num2) )
   }
}


创建俩个Set

导入可变的Set

import scala.collection.immutable.HashSet
val set1 = Set(5,6,9,20,30,45)
val set2 = Set(50,60,9,20,35,55)

1.contains:是否包含某一元素,包含返回true,不包含返回false

set1.contains(10)// Boolean = false

2.&:交集运算

set1 & set2
set1.intersect(set2) // Set(20,9)

3.&~:差集运算

set1 &~ set2
set1.diff(set2) // Set(5, 6, 45, 30)

4.union:并集运算

set1.union(set2)

5.导入不可变的Set

scala.collection.immutable.Set[Int] = Set(5, 20, 6,60, 9, 45, 35, 50, 55, 30)

6.count:计算满足指定条件的集合元素个数

val fun = (x:Int) => x > 10
set1.count(fun) // Int = 3

7.iterator:获得一个迭代器,可用于集合遍历

val it = set1.iterator
while(it.hasNext){
     
println(it.next())
}

8.size:返回集合元素的数量

splitAt:将集合拆分为两个容器,第一个由前n个元素组成,第二个由
剩下的元素组成

set1.splitAt(5)// 返回一个元组

9.take:返回前n个元素
takeRight:返回后n个元
可以使用to{type}快速转换为其他集合类型

             ————保持饥饿,保持学习
                   Jackson_MVP

你可能感兴趣的:(#,Scala)