大数据学习——scala集合练习
package com /**
* Created by ZX on 2016/4/5.
*/
object ListTest {
def main(args: Array[String]) {
//创建一个List
val lst0 = List(1,7,9,8,0,3,5,4,6,2)
//将lst0中每个元素乘以10后生成一个新的集合
val lst01=lst0.map(_ * 10)
println("lst01"+lst01) val lst1 = lst0.map(x => x * 2)
//将lst0中的偶数取出来生成一个新的集合
val lst02=lst0.filter(_ % 2==0)
println("lst02"+lst02) val lst2 = lst0.filter(x => x % 2 == 0)
//将lst0排序后生成一个新的集合
//正序
val lst03=lst0.sorted
println("lst03"+lst03)
//倒序
val lst04=lst0.sorted.reverse
println("lst04"+lst04) val lst3 = lst0.sorted
val lst4 = lst0.sortBy(x => x)
val lst5 = lst0.sortWith((x, y) => x < y)
//反转顺序
val lst6 = lst3.reverse
//将lst0中的元素4个一组,类型为Iterator[List[Int]] val lst05=lst0.grouped(4)
// println("lst05"+lst05.toList) val it = lst0.grouped(4)
//将Iterator转换成List
val lst7 = it.toList
//将多个list压扁成一个List
val lst8 = lst7.flatten val lst06=lst05.toList.flatten
println("lst06"+lst06) //先按空格切分,在压平
val a = Array("a b c", "d e f", "h i j")
val lst07=a.flatMap(_.split(" "))
println("lst07"+lst07.toList.flatten) a.flatMap(_.split(" ")) lst0.reduce(_+_)
lst0.fold(10)(_+_) //并行计算求和
lst0.par.sum
lst0.par.map(_ % 2 == 0)
lst0.par.reduce((x, y) => x + y)
//化简:reduce
//将非特定顺序的二元操作应用到所有元素
val lst9 = lst0.par.reduce((x, y) => x + y)
//按照特定的顺序
val lst10 = lst0.reduceLeft(_+_) //折叠:有初始值(无特定顺序)
val lst11 = lst0.par.fold(100)((x, y) => x + y)
//折叠:有初始值(有特定顺序)
val lst12 = lst0.foldLeft(100)((x, y) => x + y) //聚合
val arr = List(List(1, 2, 3), List(3, 4, 5), List(2), List(0))
val result = arr.aggregate(0)(_+_.sum, _+_) val l1 = List(5,6,4,7)
val l2 = List(1,2,3,4)
//求并集
val r1 = l1.union(l2)
//求交集
val r2 = l1.intersect(l2)
//求差集
val r3 = l1.diff(l2)
val r4 = l2.diff(l1)
println(r1)
println(r2)
println(r3)
println(r4) val m = Map(("a", 1)) }
}
val array = Array(1, 2, 3, 4, 5)
println(array.fold(0)(_ + _))
//结果15 0+1+2+3+4+5
//并行集合
println(array.par.sum)
println(array.par.reduce(_+_))
println(array.reduceLeft(_+_))
println(array.foldLeft(10)(_+_))
//聚合
val arrList=List(List(100,2,3),List(3,4,5),List(4,5))
val res=arrList.aggregate(10)(_+_.sum,_+_)
println(res)
大数据学习——scala集合练习的更多相关文章
- 大数据学习--day16(集合总体架构--ArrayList--LinkedList)
集合总体架构--ArrayList--LinkedList Collection接口的实现类用法上都有相似的方法.Map同理. List: 特性 : 1. 有索引 2. 有序 ...
- 大数据学习——scala入门练习
package com /** * Created by ZX on 2015/11/6. */ object VariableDemo { def main(args: Array[String]) ...
- 大数据学习——scala类相关操作
1 类的定义 package com /** * Created by Administrator on 2019/6/3. */ //类并不用声明为public. class Person { // ...
- 大数据学习——scala数组
package com import scala.collection.mutable.ArrayBuffer /** * Created by Administrator on 2019/4/8. ...
- 大数据学习——scala入门程序
安装scala.msi https://blog.csdn.net/sinat_32867867/article/details/80305302 notepad++ object HelloScal ...
- 大数据学习——scala的wordCount小例子
val lines=List("hello tom hello jerry","hello tom hello kitty hello china") //方法 ...
- 大数据学习——scala函数与方法
package com /** * Created by Administrator on 2019/4/8. */ object TestMap { def ttt(f: Int => Int ...
- 大数据学习笔记——Java篇之集合框架(ArrayList)
Java集合框架学习笔记 1. Java集合框架中各接口或子类的继承以及实现关系图: 2. 数组和集合类的区别整理: 数组: 1. 长度是固定的 2. 既可以存放基本数据类型又可以存放引用数据类型 3 ...
- 大数据学习:storm流式计算
Storm是一个分布式的.高容错的实时计算系统.Storm适用的场景: 1.Storm可以用来用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中. 2.由于Storm的处理组件都是分布式的, ...
随机推荐
- 1068 乌龟棋 2010年NOIP全国联赛提高组
1068 乌龟棋 2010年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Descrip ...
- datatables添加长按事件
长按事件 $.fn.longPress = function (fn) { var timeout = undefined; var $this = this; for (var i = 0; i & ...
- Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory解决方法
今天用pdo连接mysql遇到一个奇怪的问题,host设为127.0.0.1可以连接成功,设为localhost就会报如下的错误: PHP Fatal error: Uncaught excepti ...
- postgres创建库时指定编码格式
postgres新建数据库时如果没有指定编码格式,会用默认的编码格式: 对于已经存在的数据库,虽然可以用:set client_encoding to 'UTF8'; set server_encod ...
- 新萝卜家园GHOST WIN7系统32,64位官方版下载
来自系统妈:http://www.xitongma.com 新萝卜家园GHOST win7系统64位官方经典版 V2016年3月 系统概述 新萝卜家园ghost win7系统64位官方经典版加快“网上 ...
- 将C4C Service Request中的summary和其他附件同步到ERP的Billing Request去
C4C里将Service Request称为Work Ticket. 比如现在我的Service Request有两个行项目,只有第一个需要同步到ERP去.但是第二个行项目对于客户检查Invoice来 ...
- ios常见错误之 Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?
Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the desi ...
- python_91_正则表达式
常用的正则表达式: '.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r& ...
- js实现23种设计模式(收藏)
js实现23种设计模式 最近在学习面向对象的23种设计模式,使用java 和 javascript 实现了一遍,但是因为目前大三,还没有比较正规的大项目经验,所以学习的过程种我觉得如果没有一定的项目经 ...
- JQuery EasyUI学习记录(三)
1.jQuery EasyUI messager使用方式 1.1 alert方法 $(function(){ //1.alert方法---提示框 $.messager.alert("标题&q ...