数组是最基本的数据结构。通常的语法或数据结构书都会先介绍数组,而后再介绍集合,链表,树,哈希表等等。我们也不例外。
定长数组
最简单的数组创建如下,记住方括号在Scala中用做泛型,相当于<>在Java中作用。
val nums = new Array[Int](10)
// 10个Integer的数组,初始值为零。
更简洁的数组创建像这样:
val s = Array("Hello", "World")
省略new的初始化,并且利用类型推断,无需指明类型。
数组元素的访问使用()。
s(0) = "Goodbye"
s不是val吗?为什么可以改变呢?s这里存的是一个数组的reference,reference不能变,但是其内容是可以改变的。另外说一句,遗憾的是,从C时代开始,Index从0开始这一违反人类正常思维的“习惯”一直沿用。
变长数组
Scala中的ArrayBuffer和Java中的ArrayList类似,长度可以改变。
import scala.collection.mutable.ArrayBuffer //注意到,ArrayBuffer在mutable的包中
val b = ArrayBuffer[Int]()
b += 1 //加元素
b += (1, 2, 3, 5) //加数组
数组遍历
可以使用Index
for (i <- 0 until a.length)
println(i + ": " + a(i))
也可以不用
for (elem <- a) println(elem)
要强调的是,对一个数组(或者其他集合)进行遍历以一种命令式的编程(imperative programming)。在Scala中,我们往往避免使用,而是使用函数式的方法。强调“做什么”而不是怎么做。以后还会遇到很多例子,你会逐步感受到它们的区别。
通用算法
Scala提供了很多内建通用算法,作用于数组,以及以后会谈到的其他数据类型如集合。比如sum,count,max,mKString等等。mKString是一个很使用的方法。参见下面的例子。
Array(1, 2, 3).sum // 6
ArrayBuffer(1, 2, 3).max // 3
val a = Array(1, 10, 2, 9)
scala.util.Sorting.quickSort(a) // 现在a变成了 Array(1, 2, 9, 10)
a.mkString(" and ")
// "1 and 2 and 9 and 10"
相关推荐
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...
在Scala中,数组和ArrayBuffer的灵活运用能够帮助我们高效地处理数据,特别是在大数据场景下,这些基础操作尤为重要。了解并熟练掌握这些知识,对于深入学习Scala编程和Spark开发具有重要意义。
在大数据课程中,Scala编程基础是不可或缺的一部分,其中重点讲解了Scala的数据结构。本节主要关注数组和元组,以及集合和相关的计算函数。 首先,Scala中的数组有两种类型:定长数组和变长数组。定长数组使用`new ...
在大数据课程中,Scala编程基础是一个重要的组成部分,特别是在学习如何高效处理大规模数据时。本课程内容涵盖多个关键概念,如模式匹配、样例类、隐式函数和异常处理及泛型,这些都是Scala语言强大特性的体现。 ...
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...
【课程大纲】第1讲-Spark的前世今生第2讲-课程介绍、特色与价值第3讲-Scala编程:基础语法第4讲-Scala编程:条件控制与循环第5讲-Scala编程:函数入门第6讲-Scala编程:函数入门之默认参数和带名参数第7讲-Scala编程...
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...
在 Scala 中,数组和 Map 是两种非常常用的数据结构。数组用于存储同类型的固定大小的数据集合,而 Map 则用于存储键值对。接下来,我们将详细探讨数组的常见操作以及 ...理解并熟练运用这些操作是 Scala 编程的基础。
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...
综上所述,通过学习Scala编程的基础知识到高级特性,开发者不仅能够更好地理解Scala语言本身,还能够有效地利用其优势来处理各种实际问题,尤其是在大数据处理领域,Scala结合Spark的强大组合已经成为不可或缺的技术...
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...
【课程大纲】第1讲-Spark的前世今生 共12页第2讲-课程介绍、特色与价值 共13页第3讲-Scala编程详解:基础语法 共8页第4讲-Scala编程详解:条件控制与循环 共7页第5讲-Scala编程详解:函数入门 共5页第6讲-Scala编程...