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集合练习的更多相关文章

  1. 大数据学习--day16(集合总体架构--ArrayList--LinkedList)

    集合总体架构--ArrayList--LinkedList Collection接口的实现类用法上都有相似的方法.Map同理. List: 特性 :      1. 有索引     2. 有序     ...

  2. 大数据学习——scala入门练习

    package com /** * Created by ZX on 2015/11/6. */ object VariableDemo { def main(args: Array[String]) ...

  3. 大数据学习——scala类相关操作

    1 类的定义 package com /** * Created by Administrator on 2019/6/3. */ //类并不用声明为public. class Person { // ...

  4. 大数据学习——scala数组

    package com import scala.collection.mutable.ArrayBuffer /** * Created by Administrator on 2019/4/8. ...

  5. 大数据学习——scala入门程序

    安装scala.msi https://blog.csdn.net/sinat_32867867/article/details/80305302 notepad++ object HelloScal ...

  6. 大数据学习——scala的wordCount小例子

    val lines=List("hello tom hello jerry","hello tom hello kitty hello china") //方法 ...

  7. 大数据学习——scala函数与方法

    package com /** * Created by Administrator on 2019/4/8. */ object TestMap { def ttt(f: Int => Int ...

  8. 大数据学习笔记——Java篇之集合框架(ArrayList)

    Java集合框架学习笔记 1. Java集合框架中各接口或子类的继承以及实现关系图: 2. 数组和集合类的区别整理: 数组: 1. 长度是固定的 2. 既可以存放基本数据类型又可以存放引用数据类型 3 ...

  9. 大数据学习:storm流式计算

    Storm是一个分布式的.高容错的实时计算系统.Storm适用的场景: 1.Storm可以用来用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中. 2.由于Storm的处理组件都是分布式的, ...

随机推荐

  1. 关于React的require添加动态变化的路径

    关于React的require添加动态变化的路径 直接这样写显然是不会有错误的 let path = require('../images/girl.png'); 但是如果你尝试着 var gg = ...

  2. Seven Deadly Sins: Gluttony, Greed, Sloth, Wrath, Pride, Lust, and Envy.

    Seven Deadly Sins: Gluttony, Greed, Sloth, Wrath, Pride, Lust, and Envy.七宗罪:暴食.贪婪.懒惰.暴怒.傲慢.色欲.妒忌.

  3. (六)我的JavaScript系列:更好的JavaScript之CoffeeScript

    世界上的很多天才都在为构建更好的JavaScript而努力.已经有了很多尝试,其中最有前途的,无非就是CoffeeScript和TypeScript了.面对CoffeeScript,我有一见如故的感觉 ...

  4. jsp另外五大内置对象之response-操作重定向

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

  5. Sequence II

    6990: Sequence II 时间限制: 3 Sec  内存限制: 128 MB提交: 206  解决: 23[提交][状态][讨论版][命题人:admin] 题目描述 We define an ...

  6. 字符编码:WideCharToMultiByte

    WideCharToMultiByte 编辑   目录 1基本介绍及功能 2相关变量     1基本介绍及功能编辑 WideCharToMultiByte 函数功能:该函数映射一个unicode字符串 ...

  7. RuntimeError: cryptography is required for sha256_password or caching_sha2_p

    报错原因:mysql版本身份验证出现问题引起的 我这里报错的地方是在Django里,pycharm连接数据库时出现的 解决办法,安装安装cryptography即可:pip install crypt ...

  8. java基础—java制作证书的工具keytool

    一.keytool的概念 keytool 是个密钥和证书管理工具.它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务.在 ...

  9. 基于GPS\北斗、GIS、GPRS技术构建智能巡检系统

    巡线工负责输油管网设施的日常巡查,可以及时发现管网设施是否完好.但巡检工作辛苦,加之管线在大部分情况下又处于良好状态,使得巡检人员麻痹大意,往往不能按规定程序进行巡检,造成巡检不到位,这样就不能从根本 ...

  10. 解决vs 编译的bug“请检查是否是磁盘空间不足、路径无效或权限不够”

    昨晚用vs编译遇到一个问题,编译一半发现硬盘没空间,一直重启vs,重启电脑, 删除pdb文件都没用,之后尝试重新生成解决方案,就解决了.这个是vs的一个bug