文章目录
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)) //wangwu
println(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
*/