当前位置:   article > 正文

scala中Set集合大全_scala set

scala set

美图欣赏:
在这里插入图片描述
一.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)

  • 1
  • 2
  • 3

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

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

  • 1
  • 2
  • 3

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

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

  • 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)

  • 1
  • 2
  • 3

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)

  • 1
  • 2
  • 3

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

7.查看Set 类型和属性

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

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()

  • 1
  • 2
  • 3

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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 )
   }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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

可以使用 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 )
   }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

交集

可以使用 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) )
   }
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

创建俩个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
  • 1

2.&:交集运算

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

3.&~:差集运算

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

4.union:并集运算

set1.union(set2)
  • 1

5.导入不可变的Set

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

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

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

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

val it = set1.iterator
while(it.hasNext){
println(it.next())
}
  • 1
  • 2
  • 3
  • 4

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

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

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

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

             ————保持饥饿,保持学习
                   Jackson_MVP
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/75367
推荐阅读
相关标签
  

闽ICP备14008679号