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] ...
随机推荐
- 关于zend_parse_parameters函数
PHP_FUNCTION(set_time_limit) { long new_timeout; char *new_timeout_str; int new_timeout_strlen; if ( ...
- High Aavialability with Group Replication-by宋利兵
今天,2016年12月12日, Group Replication GA啦!GA的版本是MySQL-5.7.17. 下载连接如下: http://dev.mysql.com/downloads/mys ...
- 【linux环境下】RabbitMq的安装和监控插件安装
[注意安装过程中,提示某些命令not found,直接yum isntall一下就好了] 以下是我在CentOS release 6.4下亲测成功的. RabbitMq的安装: RabbitMQ是 ...
- CentOS 升级内核
因为要安装go,尝试升级内核到 2.6.32.61,出现了一些问题,参考如下文档,多谢各位 http://liaozy.blog.51cto.com/921527/553921 http://www. ...
- Python基础之函数等等
三元运算 三元运算(三目运算),是对简单的条件语句的缩写. 1 2 3 4 5 # 书写格式 result = 值1 if 条件 else 值2 # 如果条件成立,那么将 "值1&q ...
- C# url信息获取
假设当前页完整地址是:http://www.360jht.com/game/bbb.aspx?id=5&name=kelli "http://"是协议名 "www ...
- 为Secure Store Service生成新密钥,解决“生成密钥过程中发现错误”的问题
我们集成TFS和SharePoint Server以后,一个最常见的需求是通过SharePoint Server的Excel Service读取TFS报表中的信息,利用Excel Service的强大 ...
- Hadoop中WritableComparable 和 comparator
1.WritableComparable 查看HadoopAPI,如图所示: WritableComparable继承自Writable和java.lang.Comparable接口,是一个Writa ...
- 边工作边刷题:70天一遍leetcode: day 88-5
coins in a line I/II/III: check above 1. recursion的返回和dp[left][right]表示什么?假设game是[left,right],那么play ...
- POJ 2001 Shortest Prefix
字典树基本题. 代码: #include <iostream> #include <cstdio> #include <cstring> #include < ...