scala学习笔记之数组
2016-08-29 15:37
239 查看
scala数组角标从0开始,使用(index)访问元素,和java不同,可以创建一个数组缓存
object ArrayDemo extends App { //数组的声明 // var z:Array[String] = new Array[String](3) // var z = new Array[String](3) var array1 = Array(1, 2, 1.5, "abc"); var array2 = new Array[String](1); //定义数组的另一种方式,角标是从0开始的 // apply( x: T, xs: T* ): Array[T]创建指定对象 T 的数组 var array3 = Array.apply(1, 2, 3) array2(0) = "hehe" //数组的赋值 //数组的合并Array.concat var concatArray = Array.concat(array2, array2) //二维数组->多维数组 //def ofDim[T]( n1: Int ): Array[T]创建指定长度的数组 //def ofDim[T]( n1: Int, n2: Int ): Array[Array[T]]创建二维数组 //def ofDim[T]( n1: Int, n2: Int, n3: Int ): Array[Array[Array[T]]]创建三维数组 var manyDimensions1 = Array((1, 2, 3), (4, 5, 6)) var manyDimensions2 = new Array[Array[String]](3) var manyDimensions3 = Array.ofDim[String](3, 2) manyDimensions2(0) = Array("ee") //赋值 manyDimensions3(0)(1) = "String" //赋值 //empty[T]: Array[T]返回长度为 0 的数组 var emotyArr = Array.empty[String] //range( start: Int, end: Int, step: Int ): Array[Int]创建指定区间内的数组,step 为每个元素间的步长 //range( start: Int, end: Int ): Array[Int]创建指定区间内的数组 var a1 = Array.range(0, 10) var a2 = Array.range(0, 10, 2) //变长数组:缓冲数组 //import scala.collection.mutable.ArrayBuffer var bufferArray = new ArrayBuffer[Int](); //()可以省略 bufferArray += 1 //在末尾添加一个值或多个值 高效的添加 bufferArray += (1, 2, 3) //在末尾添加一个值或多个值 bufferArray ++= Array(1, 2, 3) //在末尾添加一个值或多个值,如果是集合,就需要用++= bufferArray.trimEnd(3) //移除末尾的3个数 bufferArray.insert(2, 2) //指定角标位置添加一个或多个数 //效率偏低 bufferArray.insertAll(2, Array(2, 3, 4)) //指定角标位置添加一个集合 //效率偏低 bufferArray.remove(2) //移除哪个元素 bufferArray.remove(2, 2) //从第2个角标开始移除2个元素 //遍历数组 for (a <- array1) { //直接遍历数组 println(a) } for (i <- 0 until array1.length) { //使用下表遍历数组 println(array1(i)) } for (i <- 0 until (array1.length, 2)) { //从0开始没2个循环一次 println(array1(i)) } for (i <- (0 until array1.length).reverse) { //倒序遍历 println(array1(i)) } val iter = array1.iterator; //使用迭代器 while (iter.hasNext) { println(iter.next()) } //数组的转换 var newArray1 = for (a <- array1 if a != 1) yield (a + "aaa") //方式1,除了值为1的所有元素都加上aaa var newArray2 = array1.filter { _ != 1 }.map { _ + "bbb" } //方式2 var newArray3 = array1.filter { _ != 1 } map { _ + "bbb" } //方式3 //数组的常用算法 var array4 = Array.apply(1, 5, 6, 4, 5) var sum = array4.sum //求和 var max = array4.max //求最大值 var min = array4.min //求最小值 val sortArray = array4.sorted //排序 var s1 = array4.mkString("and") //result 1 and 2 and 3 and 4 and 5 var s2 = array4.mkString("<", "and", ">") //result <1 and 2 and 3 and 4 and 5> }
相关文章推荐
- Scala学习笔记(六)----数组,循环,排序
- 【Scala学习笔记】类型参数化数组
- Scala入门学习笔记三--数组使用
- Scala学习笔记03_数组
- Scala学习笔记之 --- Array、ArrayBuffer以及遍历数组(1)
- Scala学习教程笔记一之基础语法,条件控制,循环控制,函数,数组,集合
- Scala学习教程笔记一之基础语法,条件控制,循环控制,函数,数组,集合
- Scala入门学习笔记三--数组使用
- Scala学习笔记(二)--数组、列表、元祖和scala脚本编写及读取文件
- [Scala]Scala学习笔记二 数组
- Scala学习笔记--第4章 Scala数组
- Spark学习使用笔记 - Scala篇(2)- 数组
- Scala学习笔记--数组
- scala学习笔记(三)数组
- Scala学习笔记02【数组、列表、元组、集合和映射】
- Scala学习笔记:数组操作与简单算法示例
- Spark学习使用笔记 - Scala篇(2)- 数组
- scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例
- Scala学习笔记一之基础语法,条件控制,循环控制,函数,数组,集合
- scala学习笔记2 数组