小记--------scala- 数组操作之Array、ArrayBuffer以及遍历数组

1.Array
    在scala中,Array代表的含义与java中类似,也是长度不可改变的数组。此外,由于scala与java都是运行在JVM中,双方可以相互调用, 因此Scala数组的底层实际上是Java数组。例如字符串数组在底层就是Java的String[] ,整数数组在底层就是Java的Int[].
 
在创建数组的时候,数据都是有值的,只是都是默认值 Int 是0 。
 
1.1 通过索引值进行Array赋值 
语法: 数组名(索引) = 值
 
1.2通过索引值取值
语法:  数组名(索引)
注意: Array的长度是不可变的, 在创建的时候就已经固定好长度。
 
2.ArrayBuffer
    在scala中,如果需要长度 可变的数组类就可以使用ArrayBuffer
但是如果想使用ArrayBuffer的话,
需要首先导入包: import scala.collection.mutable.ArrayBuffer
 
2.1 ArrayBuffer添加元素 
语法: ArrayBuffer名 +=  值  (添加单个值)
 
一次性添加多个值
语法: ArrayBuffer名 += (值, 值, 值)  
 
加入其它的ArrayBuffer 
语法 : ArrayBuffer名 ++= 其它ArrayBuffer名
 
删除多个元素使用
语法: 数组名 .trimEnd(个数)  从尾部开始数个数
 
在指定位置插入一个元素 
语法: 数组名.insert(5,6)   5表示在索引位置为5   插入一个元素 6   插入单个元素
 
插入多个元素
语法: 数组名.insert(3,3,2,1)   第一个参数为插入位置,  之后的参数为插入的值
 
在指定位置移除元素
语法: 数组名.remove(1,2)  从索引为1的位置  移除2个元素(包含索引为1的元素)
 
3.Array和ArrayBuffer的相互转换
语法:  数组名.toArray     数组名.toBuffer
 
4.遍历Array和ArrayBuffer
   4.1 普通遍历
 
4.2跳跃遍历(2,4,6...)
 
4.3 从尾部开始遍历  反转
语法:  (0 until 数组名.length).reverse    反转
 
4.4增强for循环遍历
语法: for ( i <- 数组名)
 
5.数组常见的操作
5.1数组元素求和 
语法: 数组名.sum
 
5.2 获取数组最大值
语法: 数组名.max
 
5.3对数组进行排序
语法: scala.util.Sorting.quickSort(数组名)
 
5.4获取数组中所有元素内容
语法: 数组名.mkString
 
5.5数组转换 yield
   
 使用yield和函数式编程转换数组(通过yield构建一个新的数组)
案例:将数组a 的值的平方赋值给a2
注意:通过yield转换的数组,本身数组是什么类型那么转换好的数组也是什么类型。对于ArrayBuffer同样适用
 
在yield中加入if 守卫
 
使用函数式编程转换数组
 
算法案例:移除第一个负数之后的所有负数
 
 

猜你喜欢

转载自www.cnblogs.com/yzqyxq/p/12681717.html
今日推荐