Scala学习笔记之 --- Array、ArrayBuffer以及遍历数组(1)
2017-12-08 13:17
288 查看
Array
在Scala中,Array代表的含义与Java中类似,也是长度不可改变的数组。此外,由于Scala与Java都是运行在JVM中,双方可以互相调用,因此Scala数组的底层实际上是Java数组。例如字符串数组在底层就是Java的String[],整数数组在底层就是Java的Int[]。// 数组初始化后,长度就固定下来了,而且元素全部根据其类型初始化 val a = new Array[Int](10) a(0) a(0) = 1 val a = new Array[String](10) // 可以直接使用Array()创建数组,元素类型自动推断 val a = Array("hello", "world") a(0) = "hi" val a = Array("leo", 30)
ArrayBuffer
在Scala中,如果需要类似于Java中的ArrayList这种长度可变的集合类,则可以使用ArrayBuffer。// 如果不想每次都使用全限定名,则可以预先导入ArrayBuffer类 import scala.collection.mutable.ArrayBuffer // 使用ArrayBuffer()的方式可以创建一个空的ArrayBuffer val b = ArrayBuffer[Int]() // 使用+=操作符,可以添加一个元素,或者多个元素 // 这个语法必须要谨记在心!因为spark源码里大量使用了这种集合操作语法! b += 1 b += (2, 3, 4, 5) // 使用++=操作符,可以添加其他集合中的所有元素 b ++= Array(6, 7, 8, 9, 10) // 使用trimEnd()函数,可以从尾部截断指定个数的元素 b.trimEnd(5)
// 使用insert()函数可以在指定位置插入元素 // 但是这种操作效率很低,因为需要移动指定位置后的所有元素 b.insert(5, 6) b.insert(6, 7, 8, 9, 10) // 使用remove()函数可以移除指定位置的元素 b.remove(1) b.remove(1, 3) // Array与ArrayBuffer可以互相进行转换 b.toArray a.toBuffer
遍历Array和ArrayBuffer
// 使用for循环和until遍历Array / ArrayBuffer // 使until是RichInt提供的函数 for (i <- 0 until b.length) println(b(i)) // 跳跃遍历Array / ArrayBuffer for(i <- 0 u 4000 ntil (b.length, 2)) println(b(i)) // 从尾部遍历Array / ArrayBuffer for(i <- (0 until b.length).reverse) println(b(i)) // 使用“增强for循环”遍历Array / ArrayBuffer for (e <- b) println(e)
数组常见操作
// 数组元素求和 val a = Array(1, 2, 3, 4, 5) val sum = a.sum // 获取数组最大值 val max = a.max // 对数组进行排序 scala.util.Sorting.quickSort(a) // 获取数组中所有元素内容 a.mkString a.mkString(", ") a.mkString("<", ",", ">") // toString函数 a.toString b.toString
相关文章推荐
- scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例
- PHP学习笔记——使用回调函数处理数组的函数array_filter()
- Scala学习笔记02【数组、列表、元组、集合和映射】
- [oc学习笔记]数组的遍历和排序
- 第60讲:Scala中隐式参数实战详解以及隐式参数在Spark中的应用源码解析学习笔记
- scala学习笔记(一)——安装以及环境配置
- scala 学习(三)——Array和ArrayBuffer
- Spark学习使用笔记 - Scala篇(2)- 数组
- Scala学习笔记--Array和List和Tuple和Set和Map
- PHP学习笔记——使用foreach语句遍历数组的应用
- JavaScript学习笔记之循环在遍历数组的简单使用
- swift 学习笔记(3)数组- Array
- PHP学习笔记——使用list(),each(),while()循环遍历数组
- php学习笔记 数组遍历实现代码
- 2.关于结构体以及结构体数组作为函数入口参数的方法(学习笔记)
- PHP学习笔记——使用回调函数处理数组的函数array_walk()
- Scala学习笔记:数组操作与简单算法示例
- JQuery学习笔记——基础知识和数组以及字符串操作
- Scala学习笔记(六)----数组,循环,排序
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组