Spark大数据分析 课件 3.5 Scala基本数据结构_第1页
Spark大数据分析 课件 3.5 Scala基本数据结构_第2页
Spark大数据分析 课件 3.5 Scala基本数据结构_第3页
Spark大数据分析 课件 3.5 Scala基本数据结构_第4页
Spark大数据分析 课件 3.5 Scala基本数据结构_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Scala基本数据结构目录/Contents01数组02

元祖03集合

数组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循环对数组进行遍历。元祖02元祖元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。说的简单点,就是将多个无关的数据封装为一个整体,称为元组。与列表一样,元祖也是不可变的,但与列表不同的是元祖可以包含不同类型的元素,元祖的值是通过将不同的值包含在圆括号中构成的。1.元祖的创建2.访问元祖中的元素访问元祖的元素可以通过数字索引,我们可以使用t._1访问第一个元素,使用t._2访问第二个元素,依次类推。3.元素交换当元组中的元素为两个时,可以通过Tuple.swap方法进行元素交换,生成新的元祖。原先的元祖不会被改变。集合03

集合(1)Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质。(2)对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本,分别位于以下两个包:不可变集合:scala.collection.immutable可变集合:scala.collection.mutable(3)Scala不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象,而不会对原对象进行修改。类似于java中的String对象。(4)可变集合,就是这个集合可以直接对原对象进行修改,而不会返回新的对象。类似于java中StringBuilder对象。建议:在操作集合的时候,不可变用符号,可变用方法元祖Scala列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变,其次列表具有递归的结构(也就是链接表结构)而数组不是。1.List(列表)2.Set(集合)与其他任何一种编程语言一样,Scala中的Set集合类具有如下特点:①不存在有重复的元素。②集合中的元素是无序的。换句话说,不能以索引的方式访问集合中的元素。③判断某一个元素在集合中比Seq类型的集合要快。元祖Map(映射)是一种可迭代的键值对(key/value)结构。所有的值都可以通过键来获取。Map中的键都是唯一的。Map有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。默认情况下Scala使用不可变Map。如果你需要使用可变集合,你需要显式的引入importscala.collection.mutable.M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论