scala (7) Set and Tuple

   /**
      * 不可变长Set集合
      */
    val set0 = Set(1, 2, 3, 4, 5)
    //++并没有改变原有的set集合,只是将两个set进行合并形成新的set集合
    val newSet0 = set0 ++ Set(6, 7, 8, 9)
    println(newSet0)

    /**
      * 可变长set集合
      */
    val set1 = mutable.Set(1, 3)
    //+=或-= 后面只能是单个元素
    set1 += 1
    set1 += 2
    //++= 或 --= 后面只能添加set集合
    set1 ++= Set(5, 6, 7)
    set1.add(12)

    set1 -= 1
    set1 --= Set(1, 2, 3)
    println(set1)

    /**
      * set常用操作方法
      */

    //拼接
    println(set1.mkString("[", ",", "]"))
    //长度
    println(set1.size)
    //第一个元素
    println(set1.head)
    //最后一个元素
    println(set1.last)
    //求和
    println(set1.sum)
    //最大值
    println(set1.max)
    //最小值
    println(set1.min)

    /**
      * set的转换操作
      */
    println("================================================")
    set1.map(_*2).filter(x=>x>2).foreach(println(_))
//定义一个元组
    val t1 = ("小明", "男", 25)
    //元组的下角标是从1开始
    println(t1._1 + "=" + t1._2 + "=" + t1._3)

    //只有两个元素的元组,被称之为 对偶元组(key-value)
    val tuple2 = ("id", "123")
    println(tuple2._1 + "=" + tuple2._2)

    //可将将元组的的元素单独赋值给对应的变量
    val tuple3, (name, age, sex) = ("xm", 12, "男")
    println(tuple3)
    println(name)
    println(age)
    println(sex)

    println("=============================================")
    //数组的拉链操作转换成元组,如果数组中有多余的就会被舍弃掉
    val arr1 = Array("a", "b", "c", "d")
    val arr2 = Array("A", "B", "C", "D", "E")

    val arr3: Array[(String, String)] = arr1.zip(arr2)
    println(arr3.toBuffer)

 

posted on 2018-06-28 19:22  超爷天下第一  阅读(217)  评论(0编辑  收藏  举报