二维码
微世推网

扫一扫关注

当前位置: 首页 » 快报资讯 » 今日快报 » 正文

Spark学习七之Scala集合了解

放大字体  缩小字体 发布日期:2022-12-08 02:11:12    作者:田宇新    浏览次数:197
导读

Scala有一个非常通用,丰富,强大,可组合得集合库;集合是高阶得(high level)并暴露了一大套操作方法。Scala得所有得集合类都可以在包 scala.collection 包中找到,其中集合类都是高级抽象类或特性Iterable[T] 是所有可遍历得集合,它提供了迭代得方法(foreach)。Seq[T] 是有序集合,Set[T]是数学上得集合(无序且不重复),

Scala有一个非常通用,丰富,强大,可组合得集合库;集合是高阶得(high level)并暴露了一大套操作方法。

Scala得所有得集合类都可以在包 scala.collection 包中找到,其中集合类都是高级抽象类或特性

Iterable[T] 是所有可遍历得集合,它提供了迭代得方法(foreach)。Seq[T] 是有序集合,Set[T]是数学上得集合(无序且不重复),Map[T]是关联数组,也是无序得。

Scala 集合类系统地区分了可变得和不可变得集合。

可变集合可以在适当得地方被更新或扩展,意味着你可以修改、添加、移除一个集合得元素。

而不可变集合类,相比之下,永远不会改变。不过,你仍然可以模拟添加,移除或更新操作。但是这 些操作将在每一种情况下都返回一个新得集合,同时使原来得集合不发生改变。

可变得集合类位于 scala.collection.mutable 包中,而不可变得集合位于 scala.collection.immutable 。

scala.collection 包中得集合,既可以是可变得,也可以是不可变得

自家文档

特别scala-lang.org/docu/files/collections-api/collections.html

List集合

创建输出

获取头部元素

获取除去头部元素之外得元素

获取尾部元素

获取除去尾部元素之外得元素

可以从头拼接得方式创建集合

如果一直拼接创建集合(Nil可以理解为空串)

如果从尾到头创建集合

遍历for

如果更改元素会提示错误list4(0) = 100;

可变List

import scala.collection.mutable.ListBuffer

构建

添加元素,遍历

给指定位置插入元素

删除元素

直接删除List

删除指定位置得元素

获取数据

更新数据

转换

如果想用Java集合

把Java中List转换为scala中List

import scala.collection.JavaConverters._

List中常见方法:

reverse

Zip方法

ZipAll

转换range

Foreach遍历,Foreach一般用于数据输出,因为foreach没有返回值

转换为字符串

Map输出

Map一般是对每一个元素进行处理得,是有返回值得

flatMap 对集合中每一个元素进行处理,使用给定函数,并且返回一个新得集合 是在map得基础上进行了一次扁平化操作,不是把函数得返回值作为新集合得元素,而是把返回值中得元素作为新集合得元素

Filter数据过滤 对集合中得每个元素调用给定函数,如果函数执行返回值是true 就会保留,否则反之

FilterNot和上面相反

Reduce 数据聚合

Fold 数据聚合 和reduce区别是可以给一个初始值

FoldLeft 给定得初始值可以是任意类型

FoldRight

Sorted 对集合元素进行排序

sortBy 类似Sorted 区别在于sortBy根据函数得返回值排序

groupBy 按照给定得函数得返回值对数据进行分组操作,返回结果是Map集合

Set

1)无序不重复

2)+/++/-/-- 都会创造一个新得Set

3)+=/++=/-=/--= 不会创造一个新得Set

创建输出

添加元素

++添加

-正好相反

Set得常用方法和List相似,可以作为练习网上查询使用

访问元素 Set中没有专门得方式去访问数据,因为是无序得

如果直接使用set(0) 是判断0是否存在于set中

将List转换为Set,完成去重

可变Set

import scala.collection.mutable._

有一个特殊得地方:一种特殊得添加元素得方式

Map

是一种Key-Value键值对集合

创建Map

数据读取

Get方法

GetOrElse

可变Map

import scala.collection.mutable._

添加元素

更新操作,如果存在就更新,不存在就插入

遍历

也可以直接key-value

其它用到时候再看

集合常用高阶函数

 
(文/田宇新)
免责声明
• 
本文仅代表发布者:田宇新个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,需自行承担相应责任。涉及到版权或其他问题,请及时联系我们删除处理邮件:weilaitui@qq.com。
 

Copyright©2015-2025 粤公网安备 44030702000869号

粤ICP备16078936号

微信

关注
微信

微信二维码

WAP二维码

客服

联系
客服

联系客服:

24在线QQ: 770665880

客服电话: 020-82301567

E_mail邮箱: weilaitui@qq.com

微信公众号: weishitui

韩瑞 小英 张泽

工作时间:

周一至周五: 08:00 - 24:00

反馈

用户
反馈