20_Scala集合_不可变数组Array

发布于:2024-05-10 ⋅ 阅读:(27) ⋅ 点赞:(0)

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
 */

网站公告

今日签到

点亮在社区的每一天
去签到