Dt大数据梦工厂王家林老师 Scala实战详解之第6讲 Map、Tuple、Zip实战解析
2015-09-15 01:06
363 查看
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
相关文章推荐
- Dt大数据梦工厂王家林老师 Scala实战详解之第5讲 Scala数组操作实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第4讲 For与Function进阶实战、Lazy的使用
- Dt大数据梦工厂王家林老师 Scala实战详解之第3讲 Tuple、Array、Map与文件操作入门实战
- Dt大数据梦工厂王家林老师 Scala实战详解之 第2讲Scala函数定义,流程控制,异常处理入门实战
- 《我与大数据的365天》 ——(3) 【写代码观察数据变化】
- 云提供商们避而不谈的风险 服务器托管
- 系统调用跟我学之wait, waitpid函数
- 启动2015世界人工智能系统智商排名,检测人工智能是否超越人类
- 算法系列--Climbing Stairs
- http://blog.csdn.net/u011975949/article/details/46868373
- 报表XML导出rtf格式,结果在浏览器中打开XML文件。下载rtf文件打开后出现Authentication failed 问题
- 揭秘云计算 为应用程序选择最佳云计算平台
- rails
- 云计算学习过程
- hadoop2.7集群迁移namenode
- 大数据的存取
- stackstack pillar and grains
- leetcode 220 Contains Duplicate III
- linux 中/proc 详解 http://blog.csdn.net/kevinx_xu/article/details/8178746
- main函数可否被递归调用