Dt大数据梦工厂王家林老师 Scala实战详解之第6讲 Map、Tuple、Zip实战解析

来源:互联网 发布:udp编程bind函数的作用 编辑:程序博客网 时间:2024/05/16 10:19
package com.dt.scalaInAction.demo_006/** * Map、Tuple、Zip实战解析 */object Map_Tuple {    def main(args: Array[String]): Unit = {        //静态定义map集合 注意这个map是不可变的  immutable        var map = Map("book"->23,"gun"->21,"ipad"->20)  //var map: Map[String, Int]        //通过模式匹配 做变换 注意此操作不影响原来的map集合  生成新的map集合 因为这种map是immutable类型的        var map1 = for((k, v) <- map ) yield (k, v * 0.9)        println(map)     //  Map(book -> 23, gun -> 21, ipad -> 20)        println(map1)    //  Map(book -> 20.7, gun -> 18.900000000000002, ipad -> 18.0)                        //定义可修改的map集合  mutable        val scores = scala.collection.mutable.Map("Scala"->7, "Spark"->8, "Hadoop"->9)        //取值        val hadoop = scores.get("Hadoop")  //Some(9)        println("hadoop="+hadoop)        //getOrElse  取key为x的值 若不存在返回函数中第二个值        val x = scores.getOrElse("x", 1)  //1        println("x="+x)        //增加元素        scores += ("R"->9)    //Map(Hadoop -> 9, R -> 9, Spark -> 8, Scala -> 7)        //删除元素        scores -= "Hadoop"    //Map(R -> 9, Spark -> 8, Scala -> 7)                //按照key的然后顺序排序        val scoreMap = scala.collection.immutable.SortedMap("Scala"->7, "Spark"->8, "Hadoop"->9)  //Map(Hadoop -> 9, Scala -> 7, Spark -> 8)                    /**         * 元祖         */        //定义元祖        val tuple = (1, 2, 3, "Spark", "Scala")  //Map(Hadoop -> 9, Scala -> 7, Spark -> 8)        //通过下标取值 (是从1开始取值)        val thrid = tuple._3   //3        println("thrid="+thrid)                /**         * 如何接收tuple中的值         */        val (one, two, three, four, fire) = tuple        println("one="+one+" two="+two+" three="+three+" four="+four+" fire="+fire)        //忽略接收        val (j, k, _, _, _) = tuple        println("j="+j+" k="+k)                //def partition(p: Char => Boolean): (String, String)        val (a, b) = "Spark Hadoop".partition(_.isUpper)        println("a="+a+" b="+b)   //a=SH b=park adoop                                        /*         * zip操作         */        val symbols = Array("[", "-", "]")        val counts = Array(2, 5, 2)        val pairs = symbols.zip(counts)   //val pairs: Array[(String, Int)]        for (e <- pairs) println(e)  //([,2) (-,5)  (],2)        for ((x, y) <- pairs) print(x*y)  //[[-----]]                    }}


以上内容是从王家林老师DT大数据课程第6讲的学习笔记和个人整理。

DT大数据微信公众账号:DT_Spark 
王家林老师QQ:1740415547
王家林老师微信号:18610086859

第6讲视频网站地址:http://pan.baidu.com/s/1ntnCdzN


0 0
原创粉丝点击