【Scala】8、集合Set 字典Map和元组Tuple

集合set


def main(args: Array[String]): Unit = {

    //定义一个集合  这里默认导的是scala.collection.immutable.Set 即不可变的set
    val set1=Set(1,2,3,3,4)
    //set1.foreach(println)


    val set2=Set(3,4)
    //取得交集 使用interset函数
//    for(item<-set1.intersect(set2)){
//      println(item)
//    }

    //取得交集 使用语法糖操作符
//    for(item<-(set1 & set2)){
//      println(item)
//    }


    //取得差集 使用diff函数
//    for(item<-set1.diff(set2)){
//      println(item)
//    }

    //取得差集 使用语法糖操作符
//    for(item<-(set1 &~ set2)){
//      println(item)
//    }


    //set中使用filter函数 返回一个过滤之后的set
//    for(item<-set1.filter(item=>{
//      item>1
//    })){
//      println(item)
//    }


    //scale默认是不可变长的集合
    import scala.collection.mutable.Set
    val set3=Set[Int](1,2)

    //  +=可以为set添加元素
//    set3.+=(100)
//    set3.foreach(println)


    // +不会改变原来的set 会返回一个新的set集合
//    for(item<-set3.+(100)){
//      println(item)
//    }
  }

字典Map

def main(args: Array[String]): Unit = {

    //定义一个不可变的map  是scala.collection.immutable包下面的
    //可变map就不写了 差不多的
    //两种元素表达方式 使用 key->value 或者 (key,value)的方式
    //key不能重复  重复相当于更新
    val map1=Map[String,Int]("a"->1,"aa"->2,("b",10),("b",100))
    val map2=Map[String,Int]("a"->11,"aa"->12,("b",110),("bbbb",1100))

    //遍历
//    map1.foreach(println)
//    for(item<-map1){
//      println(item)
//    }

    //获取value  map.get(key) 返回some 找不到返回none
    // .get返回some的值 .getOrElse可以安全的返回 若前面返回的是some 就返回some的值 返回的是none就返回我们指定的默认值

//    println(map1.get("a").get)
//    println(map1.get("aaaaaa").getOrElse("100"))


    //遍历key
//    for(key<-map1.keys){
//      val value=map1.get(key).get
//      println(s"key is $key,value is $value")
//    }


    //遍历value
//    for(item<-map1.values){
//      println(item)
//    }


    //字典的合并 产生一个新的map  元素基础是map1中的元素 同时使用map2的元素去更新map1
    //更新的意思是 对于map2中的每一个元素 map中存在 则更新他 不存在就将该元素插入map1
//    for(item<-map1.++(map2)){
//      println(item)
//    }


    //使用filter 注意 map中的元素都是二元组
//    val afterFilter: Map[String, Int] = map1.filter(item => {
//      val key = item._1
//      val value = item._2
//      value > 1
//    })
//    afterFilter.foreach(println)
  }

元组Tuple

def main(args: Array[String]): Unit = {
    //定义元组 可以放置任意类型的元素 但是长度最多是22
    //元组可以new 也可以不new 甚至直接 使用()创建
    val tuple1 = new Tuple1[Int](1)
    val tuple2 = new Tuple2[Int,String](1,"aaa")
    val tuple3 = Tuple3[Int,String,Char](1,"aaa",'c')
    val tuple4 = (1, 2, 3, "a", 'c', false)

    //元组的遍历 无法只用for foreach 只能使用迭代器
    val iterator = tuple4.productIterator
//    iterator.foreach(println)
//    while(iterator.hasNext){
//      println(iterator.next())
//    }


    //toString方法
//    println(tuple3.toString())

    //特殊 只有Tuple2有的swap方法
//    println(tuple2.swap)
  }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值