Scala学习第六天 Map、Tuple、Zip实战解析

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark
DT大数据梦工厂群号:302306504王家林老师微信号:wangjialinandroid
1、Map、Tuple、Zip使用
(1)Map本身是映射,映射关系应用广泛,比如配置信息一般是映射,key-value的方式
(2)Tuple是非常重要的数据结构,使用Tuple可以把不同数据类型的元素组成一个集合,Tuple的应用当函数返回许多值,可以用Tuple接收。
(3)Zip会把相应的元素结合起来
2、Map实战

val map = Map("book" -> 10,"gun" ->18,"ipad" ->1000)  
/*这里定义的Map是imutable,也就是不可变的Map,例如key是"book",value是10等*/
for((k,v) <- map) yield (k,v * 0.9)  
/*for循环,将map的三个key、value模式匹配到(k,v)中,再 value乘以0.9,重新组成Map<String,double>的集合*/
Valscores = Scala.collection.mutable.Map(
"Scala"->7,"Hadoop" -> 8,"Spark" -> 10)
//这里定义的是mutable的Map,可修改的Map
ValhadoopSore = scores.getOrElse("Hadoop",0)  
/*为了防止寻找的key不存在,可以使用getOrElse,如果存在key 返回它的value,如果不存在返回指定值0*/
scores += ("r" -> 9)//因为是mutable,可以增加元素
scores -= "Hadoop"//因为是mutable,可以删减元素
valsortedScore = scala.collection.immutable.SoreteMap("Scala" ->7,
"Hadoop" -> 8,"Spark"->10)  
/*如果我们想让Map按key值排序,可以使用SortedMap,按字典排序
,所以是("Hadoop" -> 8,"Scala"-> 7,"Spark" -> 10)*/

3、Tuple实战

val tuple= (1,2,3.14,"Rocky","Spark")
valthird=tuple._3
val(first,second,third,fourth,fifth)=tuple   //把tuple的值赋值给元组
val(f,s,_,_,_) = tuple  //不需要返回所有值时,使用占位符

"RockySpark".partition(_.isUpper)  
/*判断字符串的字符是否是大写,大写的组成一个集合, 其他的元素组成一个集合 结果是:(RS,ock park)*/

4、Zip实战
Zip在翻译又称为拉链操作,将两个数组(或者其他集合)相应位置上的元素组成一个pair数组

valsymbols = Array(“[“,”-“,”]”)
valcounts = Array(2,5,2)
val pairs= sysbols.zip(counts)
for((x,y)<- pairs) print(x * y)

Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:

百度云盘:http://pan.baidu.com/s/1c0noOt6

腾讯微云:http://url.cn/TnGbdC

360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2

你可能感兴趣的:(scala,map,zip,Tuple)