02.27 Scala学习七之集合了解

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

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

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

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


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

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


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

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


官方文档

http://www.scala-lang.org/docu/files/collections-api/collections.html

Scala学习七之集合了解

List集合

创建输出

Scala学习七之集合了解

获取头部元素

Scala学习七之集合了解

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

Scala学习七之集合了解

获取尾部元素

Scala学习七之集合了解

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

Scala学习七之集合了解

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

Scala学习七之集合了解

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

Scala学习七之集合了解

如果从尾到头创建集合

Scala学习七之集合了解

遍历for

Scala学习七之集合了解

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

Scala学习七之集合了解

可变List

import scala.collection.mutable.ListBuffer

构建

Scala学习七之集合了解

添加元素,遍历

Scala学习七之集合了解

给指定位置插入元素

Scala学习七之集合了解

删除元素

Scala学习七之集合了解

直接删除List

Scala学习七之集合了解

删除指定位置的元素

Scala学习七之集合了解

获取数据

Scala学习七之集合了解

更新数据

Scala学习七之集合了解

转换


Scala学习七之集合了解

如果想用Java集合

Scala学习七之集合了解

把Java中List转换为scala中List

import scala.collection.JavaConverters._

Scala学习七之集合了解

List中常见方法:

reverse

Scala学习七之集合了解

Zip方法

Scala学习七之集合了解

ZipAll

Scala学习七之集合了解

转换range

Scala学习七之集合了解

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

Scala学习七之集合了解

转换为字符串

Scala学习七之集合了解

Map输出

Scala学习七之集合了解

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

Scala学习七之集合了解

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

Scala学习七之集合了解

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

Scala学习七之集合了解

FilterNot和上面相反

Scala学习七之集合了解

Reduce 数据聚合

Scala学习七之集合了解

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

Scala学习七之集合了解

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

Scala学习七之集合了解

FoldRight

Scala学习七之集合了解

Sorted 对集合元素进行排序

Scala学习七之集合了解

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

Scala学习七之集合了解

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

Scala学习七之集合了解

Set

1)无序不重复

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

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

创建输出

Scala学习七之集合了解

添加元素

Scala学习七之集合了解

++添加

Scala学习七之集合了解

-正好相反

Scala学习七之集合了解

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

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

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

Scala学习七之集合了解

将List转换为Set,完成去重

Scala学习七之集合了解

可变Set

import scala.collection.mutable._

Scala学习七之集合了解

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

Scala学习七之集合了解

Map

是一种Key-Value键值对集合

创建Map

Scala学习七之集合了解

数据读取

Scala学习七之集合了解

Get方法

Scala学习七之集合了解

GetOrElse

Scala学习七之集合了解

可变Map

import scala.collection.mutable._

Scala学习七之集合了解

添加元素

Scala学习七之集合了解

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

Scala学习七之集合了解

遍历

Scala学习七之集合了解

也可以直接key-value

Scala学习七之集合了解

其它用到时候再看

集合常用高阶函数


Scala学习七之集合了解


分享到:


相關文章: