Scala学习笔记之 --- Array、ArrayBuffer以及遍历数组(1)
来源:互联网 发布:怎么做 数据质量管控 编辑:程序博客网 时间:2024/06/06 18:21
Array
在Scala中,Array代表的含义与Java中类似,也是长度不可改变的数组。此外,由于Scala与Java都是运行在JVM中,双方可以互相调用,因此Scala数组的底层实际上是Java数组。例如字符串数组在底层就是Java的String[],整数数组在底层就是Java的Int[]。
// 数组初始化后,长度就固定下来了,而且元素全部根据其类型初始化val a = new Array[Int](10)a(0)a(0) = 1val 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()的方式可以创建一个空的ArrayBufferval b = ArrayBuffer[Int]()// 使用+=操作符,可以添加一个元素,或者多个元素// 这个语法必须要谨记在心!因为spark源码里大量使用了这种集合操作语法!b += 1b += (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.toArraya.toBuffer
遍历Array和ArrayBuffer
// 使用for循环和until遍历Array / ArrayBuffer// 使until是RichInt提供的函数for (i <- 0 until b.length) println(b(i))// 跳跃遍历Array / ArrayBufferfor(i <- 0 until (b.length, 2)) println(b(i))// 从尾部遍历Array / ArrayBufferfor(i <- (0 until b.length).reverse) println(b(i))// 使用“增强for循环”遍历Array / ArrayBufferfor (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.mkStringa.mkString(", ")a.mkString("<", ",", ">")// toString函数a.toStringb.toString
阅读全文
0 0
- Scala学习笔记之 --- Array、ArrayBuffer以及遍历数组(1)
- scala 学习(三)——Array和ArrayBuffer
- scala Array与ArrayBuffer学习记录
- Scala基本语法和API(1)--Array,ArrayBuffer,Map
- scala创建动态二维数组Array[ArrayBuffer[]]三种写法
- scala学习之ListBuffer、ArrayBuffer、Queue、Stack
- scala 数组ArrayBuffer
- scala学习笔记之数组
- scala 中Array 和 ArrayBuffer的 区别
- scala学习之Array
- Scala基础学习之tuple(元组),Array(数组),Map(映射)
- Scala学习笔记--数组
- javascript学习笔记之-----Array数组
- Scala学习笔记25【ListBuffer、ArrayBuffer、Queue、Stack常用操作实战】
- 使用Scala如何删除Array,ArrayBuffer中的元素
- scala学习之:ListBuffer、ArrayBuffer、Queue、Stack的操作代码实战
- scala学习笔记(三)数组
- 大数据学习之Scala中数组(Array)与循环控制for联合使用学习(4)
- windows7下基于Anaconda安装TensorFlow
- Gradle的高级技巧
- 2017.12.7
- QT控件大全 二十一 QPush
- 线程的初步理解,生命周期,实现方法,Thread类,Runnable接口,Callable接口线程池
- Scala学习笔记之 --- Array、ArrayBuffer以及遍历数组(1)
- ajax之$.post
- VS error LNK2001:无法解析的外部符号 xxx
- Arduino电路图教程
- java学习笔记-this关键字
- OS学习笔记——处理器调度1
- linux下的redis扩展安装以及使用
- spring配置文件中classpath与classpath* 的区别
- Android之路 7. 自定义控件