文档详情

Spark大数据分析 课件 3.5 Scala基本数据结构.pptx

发布:2025-02-19约1.85千字共13页下载文档
文本预览下载声明

Scala基本数据结构

数组

01

数组

Scala提供了一种数据结构叫作数组,数组是一种存储了相同类型元素的固定大小顺序集合。数组用于存储数据集合,但将数组视为相同类型变量的集合通常更为有用。

可以声明一个数组变量,例如:numbers,使用numbers[0],numbers[1]和...,numbers[99]来表示单个变量,而不是分别地声明每个变量,例如

number0,number1,...等变量。本教程介绍如何使用索引变量声明数组变量,创建数组和使用数组。数组的第一个元素的索引是数字0,最后一个元素的索引是元素的总数减去1。

数组

1.数组的定义和使用

在scala中数组有两种:定长数组和变长数组。

定长数组:由于Array是不可变的,初始化就有了固定的长度,所以不能直接对其元素进行删除操作,也不能多增加元素,只能修改某个位置的元素值,要实现删除可以通过过滤生成新的数组。所以也就没有:add,insert,remove等操作。

变长数组:ArrayBuffer是可变的,本身提供了很多元素的操作,当然包括增加,

删除操作。

数组

2.数组的遍历

与Java一样,如果想要获取数组中的每一个元素,需要将数组进行遍历操作。数组的遍历分为for循环遍历、while循环遍历、do...while循环遍历。下面是用for循环对数组进行遍历。

元祖

元祖

1.元祖的创建

元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。说的简单点,就是将多个无关的数据封装为一个整体,称为元组。

与列表一样,元祖也是不可变的,但与列表不同的是元祖可以包含不同类型的元素,元祖的值是通过将不同的值包含在圆括号中构成的。

2.访问元祖中的元素

访问元祖的元素可以通过数字索引,我们可以使用t._1访问第一个元素,使用t._2访问第二个元素,依次类推。

3.元素交换

当元组中的元素为两个时,可以通过Tuple.swap方法进行元素交换,生成新的元祖。原先的元祖不会被改变。

集合

集合

(1)Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质。

(2)对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本,分别位于以下两个包:

不可变集合:scala.collection.immutable

可变集合:scala.collection.mutable

(3)Scala不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象,而不会对原对象进行修改。类似于java中的String对象。

(4)可变集合,就是这个集合可以直接对原对象进行修改,而不会返回新的对象。类似于java中StringBuilder对象。

建议:在操作集合的时候,不可变用符号,可变用方法

元祖

1.List(列表)

Scala列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其次列表具有递归的结构(也就是链接表结构)而数组不是。

2.Set(集合)

与其他任何一种编程语言一样,Scala中的Set集合类具有如下特点:

①不存在有重复的元素。

②集合中的元素是无序的。换句话说,不能以索引的方式访问集合中的元素。

③判断某一个元素在集合中比Seq类型的集合要快。

元祖

3.Map(映射)

Map(映射)是一种可迭代的键值对(key/value)结构。所有的值都可以通过键来获取。Map中的键都是唯一的。Map有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。默认情况下Scala使用不可变Map。如果你需要使用可变集合,你需要显式的引入importscala.collection.mutable.Map类。在Scala中你可以同时使用可变与不可变Map,不可变的直接使用Map,可变的使用

mutable.Map。

感谢大家的聆听

显示全部
相似文档