set

Set(集合)是没有重复的对象集合,所有的元素都是唯一的。

集合分为可变的和不可变的集合。

默认情况下,Scala 使用的是不可变集合,scala.collection.immutable.Set

如果可变集合,需要引用 scala.collection.mutable.Set。

1.默认(不可变)

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

println(set.getClass.getName)
scala.collection.immutable.Set$Set4

print(set.exists(_%2==0))
true

println(set.drop(1))
Set(2, 3, 4)

  

2.可变集合 mutableSet.toSet-->imutableSet

import scala.collection.mutable.Set
val mutableSet=Set(1,2,3)
println(mutableSet.getClass.getName)

mutableSet.add(4)
println("mutableSet:" +mutableSet)
mutableSet.remove(3)
println("mutableSet:" +mutableSet)
mutableSet+=5
println("mutableSet:" +mutableSet)
mutableSet-=2
println("mutableSet:" +mutableSet)



val another=mutableSet.toSet
println(another.getClass.getName)


scala.collection.mutable.HashSet
mutableSet:Set(1, 2, 3, 4)
mutableSet:Set(1, 2, 4)
mutableSet:Set(1, 5, 2, 4)
mutableSet:Set(1, 5, 4)
scala.collection.immutable.Set$Set3
import scala.collection.mutable.Set
mutableSet: scala.collection.mutable.Set[Int] = Set(1, 5, 4)
res14_3: Boolean = true
res14_5: Boolean = true
res14_7: scala.collection.mutable.Set[Int] = Set(1, 5, 4)
res14_9: scala.collection.mutable.Set[Int] = Set(1, 5, 4)
another: scala.collection.immutable.Set[Int] = Set(1, 5, 4)

  

3. head 返回集合第一个元素

   tail 返回一个集合,包含除了第一元素之外的其他元素

   isEmpty 在集合为空时返回true

object Test {
   def main(args: Array[String]) {

    val site=Set("runoob","google","baidu")
    val nums:Set[Int]=Set()


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

}}
Test.main(Array())


第一个网站:runoob
最后一个网站:Set(google, baidu)
site是否为空:false
nums是否为空:true
defined object Test

  

4.连接集合 ++ 或 Set.++()

object Test {
   def main(args: Array[String]) {


   val site1=Set("runoob","google","baidu")
   val site2=Set("facebook","taobao")

   //++
   var site=site1++site2
   println( "site1 ++ site2 : " + site )
   //Set.++()

   site=site1.++(site2)
   println( "site1.++(site2) : " + site )
  
}}
Test.main(Array())

site1 ++ site2 : Set(facebook, taobao, runoob, google, baidu)
site1.++(site2) : Set(facebook, taobao, runoob, google, baidu)
defined object Test

  

5. 交集 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))
}}
Test.main(Array())


num1.&(num2)Set(9, 20)
num1.intersect(num2)Set(9, 20)
defined object Test

  

 

 

posted on 2019-10-10 18:14  happygril3  阅读(205)  评论(0)    收藏  举报

导航