Scala教程(五)Map、Tuple、Zip实战
来源:互联网 发布:2k16自创球员捏脸数据 编辑:程序博客网 时间:2024/04/29 17:50
Scala教程(五)Map、Tuple、Zip实战
1 键/值对Map
1.1 定义数组
键/值对的集合。任何值可以根据它的键进行检索。键是在映射唯一的,但值不一定是唯一的。映射也被称为哈希表。有两种类型的映射,不可变以及可变的。可变和不可变的对象之间的区别在于,当一个对象是不可变的,对象本身不能被改变。
// 定义map val map = Map("book"->10,"pen"->3,"moblie"->2000,"PC"->5000) //> map : scala.collection.immutable.Map[String,Int] = Map(book -> 10, pen -> 3, moblie -> 2000, PC -> 5000)
1.2 遍历Map
// map中的元素 *0.9 for((k,v) <- map) yield v *0.9 //> res19: scala.collection.immutable.Iterable[Double] = List(9.0, 2.7, 1800.0, 4500.0)
1.3 动态Map
// 动态Map val scores = scala.collection.mutable.Map("Scala"->7,"Hadoop"->10,"Spark"->12) //> scores : scala.collection.mutable.Map[String,Int] = //| Map(Hadoop -> 10, Spark -> 12, Scala -> 7) // 添加元素 scores += ("R"->16) //> res20: com.scala.Scala.scores.type = //| Map(Hadoop -> 10, R -> 16, Spark -> 12, Scala -> 7) // 删除元素 scores -=("Hadoop") //> res21: com.scala.Scala.scores.type = //| Map(R -> 16, Spark -> 12, Scala -> 7)
1.4 Map排序
// 可元素进行排序Map val sortedScore = scala.collection.immutable.SortedMap("Scala"->7,"Hadoop"->10,"Spark"->12) //> sortedScore : scala.collection.immutable.SortedMap[String,Int] = Map(Hadoo //| p -> 10, Scala -> 7, Spark -> 12)
2 元组Tuple
2.1 定义元组
tuple最主要是自动识别变量类型,遍历时从1开始,可以用空格或者点加占位符进行数据访问,截取大写字母后拼接以及获得tuple中的部分数据,不需要的用占位符代替。
// tuple主要是能够自动识别变量类型,自己查看类型 val tuple = (1,2,3.14,"Java","Scala") //> tuple : (Int, Int, Double, String, String) = (1,2,3.14,Java,Scala)
2.2 访问元素
// 遍历时从1开始,可以是空格或者加占位符序列进行访问 val third = tuple._3 //> third : Double = 3.14
2.3 多变量赋值
// tuple变量赋值,部分变量赋值用占位符代替 val(first,second,thirda,fourth,fifth) = tuple; //> first : Int = 1 //| second : Int = 2 //| thirda : Double = 3.14 //| fourth : String = Java //| fifth : String = Scala // tuple元素值赋到f,s中,其它使用占位符 val(f,s,_,_,_) = tuple //> f : Int = 1 //| s : Int = 2
2.4 partition折分
// partition根据断言函数的返回值对列表进行拆分, 截取大写字母后拼接 "Rocky Spark".partition(_.isUpper) //> res22: (String, String) = (RS,ocky park)
3 Zip实战
3.1 Zip操作实战
// Zip操作:按照两个数组的序列进行匹配组成新得元素 val symbols = Array("[","-","]") //> symbols : Array[String] = Array([, -, ]) val counts = Array(2,5,2) //> counts : Array[Int] = Array(2, 5, 2) val pairs = symbols.zip(counts); //> pairs : Array[(String, Int)] = Array(([,2), (-,5), (],2)) // ([*2)+(-*5)+(]*2) for((x,y)<-pairs) println(x*y) //> [[ //| ----- //| ]]
--以上为Map、Tuple、Zip实战的内容,谢谢大家对我的关注。
——厚积薄发(yuanxw)
0 0
- Scala教程(五)Map、Tuple、Zip实战
- scala-06Map、Tuple、Zip实战解析
- Scala : Map、Tuple、Zip
- Scala学习第六天 Map、Tuple、Zip实战解析
- Scala学习第六天 Map、Tuple、Zip实战解析
- Scala学习笔记09【Map、Tuple、Zip常用操作实战】
- 0006.Map、Tuple、zip实战
- Scala 深入浅出实战经典 第6讲:Map、Tuple、Zip实战解析
- scala中神奇的map tuple zip
- Scala学习笔记--Map,Tuple,Zip总结
- scala学习之Map、Tuple、zip
- scala基础8-map/tuple/zip进阶
- scala 之 Map ,Tuple 以及 Zip 操作
- 006-Map、Tuple、Zip实战解析
- 6.Map、Tuple、Zip实战解析
- Dt大数据梦工厂王家林老师 Scala实战详解之第6讲 Map、Tuple、Zip实战解析
- Scala学习之Map、Tuple、Zip用法进阶
- scala学习之路:6.Map,Tuple,zip操作
- Samba服务器配置记录
- Panel右键菜单获取Panel的Tag
- 怎样才能把jpg格式转换成pdf
- MySQL安装与基本配置
- 小强的HTML5移动开发之路(2)——HTML5的新特性
- Scala教程(五)Map、Tuple、Zip实战
- 程序员修炼之道---从小工到专家(第2章)
- 多线程的使用的基本模型
- canvas每draw一次会创建创建一个图层,translate也是移动新的图层,那save restore还有什么用?
- android中系统权限介绍
- 欢迎使用CSDN-markdown编辑器
- 重磅来袭,使用CRL实现大数据分库分表方案
- 设计模式学习笔记-状态模式
- 移动支付 支付宝接入DEMO