Scala语法介绍(九):数组
数组
scala中,有两种数组,一种是定长数组,另一种是变长数组
定长数组
- 定长数组指的是数组的长度是不允许改变的
- 数组的元素是可以改变的
语法:
// 通过指定长度定义数组
val/var 变量名 = new Array[元素类型](数组长度)
// 用元素直接初始化数组
val/var 变量名 = Array(元素1, 元素2, 元素3...)
- 在scala中,数组的泛型使用[]来指定
- 使用()来获取元素
参考代码:
scala> val a = new Array[Int](100)
a: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
scala> a(0) = 110
scala> println(a(0))
110
变长数组
变长数组指的是数组的长度是可变的,可以往数组中添加、删除元素
使用方法
创建变长数组,需要提前导入ArrayBuffer类import scala.collection.mutable.ArrayBuffer
语法:
创建空的ArrayBuffer变长数组,语法结构:
val/var a = new ArrayBuffer[元素类型]()
创建带有初始元素的ArrayBuffer
val/var a = ArrayBuffer(元素1,元素2,元素3....)
示例一
定义一个长度为0的整型变长数组
参考代码
val a = ArrayBuffer[Int]()
示例二
定义一个包含"hadoop", “storm”, "spark"元素的变长数组
参考代码
scala> val a = ArrayBuffer("hadoop", "storm", "spark")
a: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer(hadoop, storm, spark)
添加/修改/删除元素
- 使用+=添加元素
- 使用-=删除元素
- 使用++=追加一个数组到变长数组
参考代码
// 定义变长数组
scala> val a = ArrayBuffer("hadoop", "spark", "flink")
a: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer(hadoop, spark, flink)// 追加一个元素
scala> a += "flume"
res10: a.type = ArrayBuffer(hadoop, spark, flink, flume)// 删除一个元素
scala> a -= "hadoop"
res11: a.type = ArrayBuffer(spark, flink, flume)// 追加一个数组
scala> a ++= Array("hive", "sqoop")
res12: a.type = ArrayBuffer(spark, flink, flume, hive, sqoop)
遍历数组
可以使用以下两种方式来遍历数组:
- 使用for表达式直接遍历数组中的元素
- 使用索引遍历数组中的元素
参考代码:
scala> val a = Array(1,2,3,4,5)
a: Array[Int] = Array(1, 2, 3, 4, 5)scala> for(i<-a) println(i)
1
2
3
4
5
参考代码
scala> val a = Array(1,2,3,4,5)
a: Array[Int] = Array(1, 2, 3, 4, 5)scala> for(i <- 0 to a.length - 1) println(a(i))
1
2
3
4
5scala> for(i <- 0 until a.length) println(a(i))
1
2
3
4
5
0 until n——生成一系列的数字,包含0,不包含n
0 to n ——包含0,也包含n
数组常用算法
以下为常用的几个算法:
- 求和——sum方法
- 求最大值——max方法
- 求最小值——min方法
- 排序——sorted方法
// 升序排序
scala> a.sorted
res53: Array[Int] = Array(1, 2, 4, 4, 10)// 降序
scala> a.sorted.reverse
res56: Array[Int] = Array(10, 4, 4, 2, 1)
Scala语法介绍(九):数组相关推荐
- Scala语法介绍(十):元组-列表-Set-Map映射
元组 元组可以用来包含一组不同类型的值.例如:姓名,年龄,性别,出生年月.元组的元素是不可变的. 定义元组 使用括号来定义元组 val/var 元组 = (元素1, 元素2, 元素3....) 使用箭 ...
- scala语法 -多维数组
不多BB,上代码 def testMatrixA () = {val matrix = Array.ofDim[Int](3, 4)printMatrix(matrix)}def printMatri ...
- Scala语法(一) 基础语法(变量常量判断循环数组集合)
前言 在前面的章节中, 我们介绍了如何在Eclipse内安装Scala环境. 本章开始, 我们将讲解下Scala的基本语法. PS: 1. 个人虽然没有想转Scala语言开发的思想, 但是近来Scal ...
- scala函数式编程(二) scala基础语法介绍
上次我们介绍了函数式编程的好处,并使用scala写了一个小小的例子帮助大家理解,从这里开始我将真正开始介绍scala编程的一些内容. 这里会先重点介绍scala的一些语法.当然,这里是假设你有一些ja ...
- php语法介绍,PHP 函数语法介绍一
PHP 函数语法介绍一 复制代码 代码如下: function getAdder($x) { return function ($y) use ($x) { return $x + $y; }; } ...
- Java基础语法(九)——String类
文章目录 Java基础语法(九)--String类 一.定义方式 二.内存 三.字符串比较相等 四.字符串常量池 (1) 直接赋值 (2)采用构造方法 (3)intern 的使用 五.理解字符串不可变 ...
- Scala _01介绍安装使用
Scala介绍 1.Spark1.6中使用的是Scala2.10.Spark2.0版本以上使用是Scala2.11版本. 2.Scala官网6个特征. Java和scala可以混编 类型推测(自动推测 ...
- Swift翻译之-Swift语法入门 Swift语法介绍
目录[-] Hello world - Swift 简单赋值 控制流 函数与闭包 对象和类 枚举与结构 协议和扩展 泛型 2014.6.3日,苹果公布最新编程语言Swift,Swift是一种新的编程语 ...
- c语言中建一个文件的语法,C语言语法介绍_文件.ppt
C语言语法介绍_文件 第十三章 本章要点 文件的基本概念 文件的基本函数 文件的顺序读写 文件的随机读写 文件简单应用 主要内容 13.1 C文件概述 13.2 文件类型指针 13.3 文件的打开与关 ...
最新文章
- 华为自动驾驶实车实路测试视频曝光!
- 汇编语言 实现一个数字的平方
- VALVE SURVEY RESULTS
- 在Java 8中使用不带静态导入的Mockito
- 计算机接口控制采集时序图,自动站实时数据质量控制
- 成为C++高手之实战项目
- FatMouse's Speed hdu 1160(动态规划,最长上升子序列+记录路径)
- LeetCode 103. 二叉树的锯齿形层次遍历(Binary Tree Zigzag Level Order Traversal)
- $(document).ready(function(){});不执行
- 服务器千兆网卡接百兆交换机不通_一文搞懂监控工程中百兆交换机和千兆交换机的区别在哪?...
- 【API进阶之路】高考要考口语?我用多模态评测API做了一场10w+刷屏活动
- 微型计算机原理与接口实验报告,微型计算机原理与接口技术实验报告.doc
- 2019年最新淘宝联盟淘宝客升高佣规则
- pyinstaller包含html文件,pyinstaller打包exe
- java计算机毕业设计楼宇管理系统源码+数据库+lw文档+系统
- 使用谷歌(Google)TTS服务 – Java版开源gTTS及Python gTTS
- 王学岗移动架构34——IOC注入框架设计
- jAVA EE NZ2001 java EE学习总结 第七周(包含思维导图) 主要内容I/O框架、网络编程、反射
- 从乔布斯卸任看苹果未来三年 会否半途而废?
- 学生如何免费激活JetBrain所有产品(PyCharm,IDEA......)