大数据学习之scala(2)

2019.09.09

集合

容器类数据结构,支持声明式编程
<1> 序列:有先后次序的元素集合
<2> 数组:有索引的序列,类型相同,扁平的数据结构,是可变的数据结构(可以修改其中的数据元素),但是它的长度是固定的。
数组
<3> 列表:线性的元素序列,类型是相同的,递归结构,不可对其进行修改。
方法:

  • head方法:访问第一个元素
  • tail方法:访问第一个元素后面的所有元素
  • isEmpty方法:判断列表是否为空,为空会返回true

<4> 向量:结合列表、数组各自特性的类,可以进行索引访问和线性访问,支持快速修改和访问任意位置的元素。
<5> 集合:是一个无序的集合,其中每个元素都不相同,不能通过索引来访问。
方法:

  • contains方法:若当前集合包含该元素,返回true
  • isEmpty方法:如果当前集合为空,则返回true

<6> map:一个键值对集合,通过键找值,非常高效
Map

集合类上的高阶方法

<1> map:参数是一个函数,作用于集合中的每一个元素,返回一个集合,返回个数和调用map的集合元素个数一致,类型却可能不一样。如果一个函数只有一个参数,包裹参数的列表可以用大括号代替:
map

val ys = xs.map((x:Int) => x*10.0)
val ys = xs.map{(x:Int) => x*10.0}

//还可以改成以操作符的方式调用方法
val ys = xs map{(x:Int) => x*10.0}

//还可以省略参数类型
val ys = xs map{x => x*10.0}

//如果函数字面量的参数只在函数体内使用一次,右箭头及其左边部分都可以省略,可以只写函数字面量的主体
val ys = xs map{_*10.0}
//下划线表示集合中的元素,把它作为参数传递给map中的函数字面量

map2
<2> flatMap:参数是一个函数,结果是一个扁平化的集合

toList方法:创建一个列表包含原有集合的所有元素
flatMap
<3>filter:将谓词函数(返回一个布尔值的函数,要么为true,要么为false),作用于集合中的每一个元素,返回另一个集合,其中只包含计算结果为真的元素
filter
<4> foreach:参数是一个函数,作用于集合中的每一个元素,但是不返回任何东西,类似于map
foreach
<5> reduce:参数是一个函数,该函数有两个参数,将参数整合成一个值返回
应用:
reduce

  • 求列表 +,-,*,/
  • 求列表最大值、最小值
  • 求字符串最大长度

单独Scala应用程序

  • 编译:scalac HelloWorld.scala
  • 运行:scala HelloWorld

hello world
mingling

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值