文章目录
- Array
- 1.创建不可变数组Array
- 1.1直接new
- 1.2apply方法
- 2.Array改查
- 3.mkString()
- 4.不可变数组Array遍历
- for循环遍历
- foreach遍历
- foreach匿名写法
- Appendix
Array
–Array不可变数组,增删数据不会使源数组发生变化,而是会产生新数据
–scala中数组表示使用arr(3) ; [ ]表示泛型
1.创建不可变数组Array
1.1直接new
// 1.创建数组
val arr = new Array[String](3) //长度是3
println(arr) //scala中的Array 就是java中的 String[] arr 反编译等价;
1.2apply方法
使用apply内置方法直接赋值
// --创建方式且同时赋值操作;
val arr1: Array[Int] = Array.apply(1, 2, 3, 4)// --scala的apply方法编译器自动识别 -- 可省,数据类型填值类型可以推断,可省
val arr2 = Array(3,2,1)
2.Array改查
不可变数组Array,没有增删,所有的增删操作使用修改 替代
// 2.增删改查 此处Array没有添加和删除的能力;只能修改数据平替增删
arr(0) = "zhangsan"
arr(1) = "lisi" //修改操作,非赋值;
arr(2) = "wangwu"println(arr(2)) //wangwuprintln(arr.mkString) //zhangsanlisiwangwu
println(arr.mkString(" ")) //zhangsan lisi wangwu
println(arr.mkString(",")) //zhangsan,lisi,wangwu
3.mkString()
mkString 方法,将数组数据生成字符串
println(arr.mkString) //zhangsanlisiwangwu
println(arr.mkString(" ")) //zhangsan lisi wangwu
println(arr.mkString(",")) //zhangsan,lisi,wangwu
4.不可变数组Array遍历
循环遍历{循环遍历for(elem <- arr){}循环forEach遍历--实质是面向对象的方法实现循环遍历foreach遍历匿名写法--注意函数作为对象进行调用的时候,函数名不重要,函数参数重要;}
for循环遍历
for (elem <- arr) {println(elem)
}
foreach遍历
// 循环forEach遍历
// 首先定义一个 遍历逻辑
def foreachFun(str: String): Unit = {println("***********" + str)}arr.foreach(foreachFun) //forEach需要传入参数,参数类型是String => Unit
/*
***********zhangsan
***********lisi
***********wangwu*/
foreach匿名写法
arr.foreach((str: String) => {println("匿名遍历" + str)}
)// 简化
arr.foreach(str => println("匿名遍历" + str)
)
arr.foreach(println(_))
arr.foreach(println)
Appendix
–Array是不可变数组 ,因此添加数据或删除数据不会改变源数组,而是会产生新数组; //了解即可
arr1.+:(1000)
for (elem <- arr1) {println(elem)
}
/*** 1* 2* 3* 4 没有1000*/