一天一段scala代码(十三)
来源:互联网 发布:机械动画软件 编辑:程序博客网 时间:2024/05/23 12:50
一天一段scala代码(十三)
为了更好的驾驭spark,最近在学习scala语言特性,主要看《快学scala》,顺便把一些自己认为有用的代码记下来。
package examplesobject Example13 extends App{ //可变集合和不可变集合 val iMap = scala.collection.immutable.Map("1"->2,"2"->2) println(iMap) println(iMap+("3"->3))//新创建一个map,并加上一个元素. 没有 +=函数 println(iMap) val mMap = scala.collection.mutable.Map("1"->2,"2"->2) println(mMap) println(mMap+=("3"->3))//改变原来的map,并返回新的map println(mMap) //集合有很多方法,用IDE开发有提示,比较方便 //举例:reduceLeft,scanLeft,getOrElse val partial_function_res = "-3+4".collect{case '+' =>1;case '-' => -1;} println(partial_function_res) //拉链操作 val names=List("linger","angel") val ages=List("25","24") println(names zip ages) //遍历操作可以用iterator //赖视图 import scala.math._ val powers = (1 until 1000).view.map(pow(10,_)) //并不会马上执行计算.类似spark的rdd的transform powers(99)//会执行计算 pow(10,99) //赖视图如果加上force,则会强制进行计算,比如 (1 until 2).view.map(pow(10,_)).force //赖视图的还有一个好处,就是如果集合进行多次变换,则可以省去产生中间结果 (1 until 2).view.map(pow(10,_)).map (1/_).force //平常我们用到的集合都是非线程安全的,scala有一些线程安全的特质,可以混入那些结合,使其线程安全. //另外,还可以使用java.util.concurrent的线程安全的集合 }
输出
Map(1 -> 2, 2 -> 2)Map(1 -> 2, 2 -> 2, 3 -> 3)Map(1 -> 2, 2 -> 2)Map(2 -> 2, 1 -> 2)Map(2 -> 2, 1 -> 2, 3 -> 3)Map(2 -> 2, 1 -> 2, 3 -> 3)Vector(-1, 1)List((linger,25), (angel,24))
本文链接:http://blog.csdn.net/lingerlanlan/article/details/44859175
1 0
- 一天一段scala代码(十三)
- 一天一段scala代码(一)
- 一天一段scala代码(二)
- 一天一段scala代码(三)
- 一天一段scala代码(四)
- 一天一段scala代码(五)
- 一天一段scala代码(六)
- 一天一段scala代码(七)
- 一天一段scala代码(八)
- 一天一段scala代码(九)
- 一天一段scala代码(十)
- 一天一段scala代码(十一)
- 一天一段scala代码(十二)
- 一天一段scala代码(十四)
- 一天一段scala代码(十五)
- 一天一段scala代码(十六)
- 开会讨论,写一段scala 代码
- 一段代码(原)
- 单向链表创建(一)
- ObjectC----NSDate和Extension以及代理协议的用法
- android后台服务service全解析(下)--service远程通信
- Algorithm--冒泡排序
- IT小屌丝---记程序生涯2014-6-9月的事
- 一天一段scala代码(十三)
- java中,对文件进行追加内容操作的三种方法!
- uva1585
- 多种sock_raw的特点和使用方法
- win8上安装rational rose2003教程(附安装包和破解文件下载地址)
- 乱序序列保序输出
- OpenJDK类加载实现浅析#2:安全检查
- 学生信息管理系统简易版(结构体)
- 单表置换密码