Scala之Map,Tuple
/**
* 1,默认情况下Map构造的是不可变的集合,里面的内容不可修改,一旦修改就变成新的Map,原有的Map内容保持不变;
* 2,Map的实例是调用工厂方法模式apply来构造Map实例,而需要主要的是Map是接口,在apply中使用了具体的实现;
* 3,如果想直接new出Map实例,则需要使用HashMap等具体的Map子类;
* 4,查询一个Map中的的值一定是采用getOrElse的语法的,一方面是在key不存的情况下不报告异常,另外还有一个神奇的作用就是提供默认值
* 而关于默认值的提供在实际开发中至关重要,在Spark中很多默认的配置都是通过getOrElse的方式来实现的;
* 5,使用SortedMap可以得到排序的Map集合;
* 6,LinkedHashMap可以记住插入的数据的顺序,这在实际开发中非常有用
*
*
* 7,Tuple中可以有很多不同类型的数据,例如("wangjialin", "male",30, "I am into spark so much!!!")
* 8,在企业级实际开发大数据的时候一定会反复的使用Tuple来表达数据结构,以及使用Tuple来处理业务逻辑
* 9,Tuple的另外一个非常重要的使用是作为函数的返回值,在Tuple中返回若干个值,以SparkContext源码为例来说明
* // Create and start the scheduler
* val (sched, ts) = SparkContext.createTaskScheduler(this, master)
* _schedulerBackend = sched
* _taskScheduler = ts
*/
package com.dtspark.scala.basics
object HelloMapTuple {
def main(args: Array[String]): Unit = {
val bigDatas = Map("Spark"->6, "Hadoop"->11) //调用工厂方法模式apply来构造Map实例,而需要主要的是Map是接口,在apply中使用了具体的实现
val persons = scala.collection.immutable.SortedMap(("jialingege", 30),("dtspark", 1),("hadoop",11))
val programingLanguage = scala.collection.mutable.Map("Scala" -> 13, "Java"-> 23)
programingLanguage("Scala") = 15
for((name,age) <-programingLanguage) println(name + " : " + age)
println(programingLanguage.getOrElse("Python", "jialingege"))
val personsInformation = new scala.collection.mutable.LinkedHashMap[String, Int]
personsInformation += ("Scala" -> 13, "java"-> 23, "python" -> 10)
// personsInformation -=("Java")
for((name,age) <-personsInformation) println(name + " : " + age)
for(key <- personsInformation.keySet) println(key)
for(value <- personsInformation.values) println(value)
// val result = for((name,age) <-personsInformation) yield (age, name)
// for((age,name) <-result) println(age + " : " + name)
for((name,age) <-persons) println(name + " : " + age)
val information = ("wangjialin", "male",30, "I am into spark so much!!!")
println(information._4)
}
}
Scala之Map,Tuple的更多相关文章
- Scala集合Map
在scala中Map分为可变长(mutable)和不可变长(immutable) /** * 不可变长map 长度一旦初始化,就不能在进行更改 */ // 通过箭头的方式创建map val map = ...
- scala (6) Map
在scala中Map分为可变长(mutable)和不可变长(imtable) /** * 不可变长map 长度一旦初始化,就不能在进行更改 */ // 通过对偶元组的方式创建map val map = ...
- scala之map,List,:: , +:, :+, :::, +++操作
scala之map,List操作 1.Map操作 2.List操作 2.1Demo1 2.2Demo2 3.:: , +:, :+, :::, +++ 1.Map操作 Map(映射)是一种可迭代的键值 ...
- Scala入门系列(四):Map & Tuple
Map 创建Map // 创建一个不可变的Map scala> val ages = Map("Leo" -> 30, "Sparks" -> ...
- Scala学习之Tuple、Map、Array
1.Tuple Tuple的中文意思是元组,它的定义是不需要方法. 例如:val tup=(25,”Tuple”,”Map”,”Array”). 值得注意的是,Tuple在进行索引的时候,与我们平时所 ...
- [原创]Scala学习:Tuple,Array,Map ,文件操作
1.Tuple:元祖.是一个有用的容器对象. 1)特点: ① 元祖是不可变的,即,当声明完了一个元祖,那么它的长度就不可以在改变: ② 元祖可以包含不同类型的数据,对象: ③ 索引是从 '_1 ...
- Scala 学习之路(七)—— 常用集合类型之 Map & Tuple
一.映射(Map) 1.1 构造Map // 初始化一个空map val scores01 = new HashMap[String, Int] // 从指定的值初始化Map(方式一) val sco ...
- Scala 系列(七)—— 常用集合类型之 Map & Tuple
一.映射(Map) 1.1 构造Map // 初始化一个空 map val scores01 = new HashMap[String, Int] // 从指定的值初始化 Map(方式一) val s ...
- scala中Map和Tuple
/** * Created by root * Description : Tuple and Map */ object MapTest { def main(args: Array[String] ...
随机推荐
- 烂泥:KVM利用LVM快照快速部署虚拟机
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上一篇文章介绍了有关KVM利用LVM快照备份和恢复虚拟机的功能,这篇文章我们来介绍,如何利用LVM快照功能为KVM快速部署虚拟机. 部署虚拟机需要以下几 ...
- Python Backup Files
近来书写 Python 脚本进行替换以前的 shell 脚本,发现 Python 优于 shell 的最直观的一点Python 结构明了,可读性高(本人认为)在此做一些记录 本次记录利用 Python ...
- windows server 2003下安装.net framework 3.5 一直安装不成功
安装包是在微软下载中心下的197m的文件 重启了也是不行,最后 找到.net framework 3.5 sp1 一个237m的安装包 安装成功了! Congratulations !
- hdu 1398 Square Coins(简单dp)
Square Coins Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Pro ...
- Linux下Mysql安装
1.下载安装包 首先查看Linux版本: [root@localhost ~]# lsb_release -a LSB Version: :core-4.0-amd64:core-4.0-noarch ...
- 调用手机话费充值API的SDK编写思路
思路 通过将SDK方法中返回的数据划分为正常返回数据以及错误返回的数据两部分,让调用者更简单的对接口调用错误进行处理. 将SDK调用第三方服务接口的流程划分为: 数据准备,http请求,结果处理三部分 ...
- [转] KVM Internals, code and more
KVM Kernel-based Virtual Machine Internals, code and more http://slides.com/braoru/kvm#/ What behind ...
- 译:Google的大规模集群管理工具Borg(二)------ Borg架构
3.Borg 架构 一个Borg的cell由一系列的机器组成,通常在cell运行着一个逻辑的中央控制器叫做Borgmaster,在cell中的每台机器上则运行着一个叫Borglet的代理进程.而Bor ...
- java常用方法总结
最近打算换工作,还是需要补一下面试的基础知识,写了一些面试中可能会用到的常用算法.方法,以便复习 //99乘法表 /** * 1*1 * 1*1 1*2 * 1*1 1*2 1*3 * …… * */ ...
- java使用HttpURLConnection和HttpClient分别模拟get和post请求以及操作cookies
1.使用HttpURLConnection public static String getJsonByURL(String base_url) { String url = base_url; St ...