Scala的Array数组

可修改的ArrayBuffer

Scala 复制代码
package test_29
import java.lang
import scala.collection.mutable.ArrayBuffer

//Array:数组
//可修改的:ArrayBuffer
//不可修改的:Array

object Test {
  //可修改的:ArrayBuffer
  def main(args: Array[String]): Unit = {
    //1 新建
    val arr1=ArrayBuffer(1,2,3)
    //2 添加
    arr1+=4
    arr1.insert(0,100)
    //3 删除
    arr1-=3//删除指定的元素
    arr1.remove(0)//删除指定位置(下标)的元素
    //4 修改
    arr1(0)=50//把下标为0的元素赋值为50

    //注意,下标不能越界,有效的范围是:0- 长度-1
    println(arr1.length)//length 长度,用来获取元素的个数
    println(arr1(1))//IndexOutOfBoundsException
    //5 查询
    //5.1 判断某个元素在数组中是否存在
    println(s"50在数组中吗 ${arr1.contains(50)}")
    //5.2 找到指定元素的下标
       //-1 表示这个元素在数组中不存在
    println(s"500在数组中的下标是:${arr1.indexOf(500)}")
    //6 遍历
    //for,foreach,iterator
//    for (i<-arr1)println(i)
//    println("-"*50)
//    arr1.foreach(println)
//    println("-"*50)
    val it1=arr1.iterator
    while (it1.hasNext){
      println(it1.next())
    }
  }

}

不可修改的Array

Scala 复制代码
package test_29
import java.lang
import scala.collection.mutable.ArrayBuffer

//Array:数组
//可修改的:ArrayBuffer
//不可修改的:Aray

object Test {
  //不可变的Array:长度不可变
  def main(args: Array[String]): Unit = {
    val arr1 = Array(1, 2, 3)
    arr1(0) = 100
    arr1.foreach(println)

    //数组的常用的方法(对于可变和不可变的数组都可以使用)
    //1 截取,从原数组中,取一部分,组成一个新的数组
    //    arr1.slice(起点下标,终点下标-不包括)
    val arr2 = arr1.slice(2, 5)
    arr2.foreach(println)
    //2 遍历 foreach
    //3 映射 map
    //Array(1,2,3)------->Array(2,4,6)
    val arr3 = Array(1, 2, 3).map(_*2)
    arr3.foreach(println)
    //4 过滤 filter
    println("-"*50)
    //留下奇数,组成一个新的数组
    val arr4=Array(2,3,4,5,6).filter(e=>e%2==1)
    arr4.foreach(println)
    // 5 折叠 reduce
    println(Array(1,2,3,4).reduce((a,b)=>a+b))
    //多维数组
    val arr5=Array(Array(1,2,3),
                   Array(4,5,6),
                   Array(7,8,9))
    //9
    println(arr5(2)(2))
    //4
    println(arr5(1)(0))
    //创建二维数组
//    val arr6=Array.ofDim[Int](3,3,3)
//    arr6(0)(0)(0)=1
    //由一维数组转化得到二维数组
    val arr6=Array(1,2,3,4,5,6).grouped(3)//对数组中的元素,三个一组,升级为二维数组
    while (arr6.hasNext){
      val rs =arr6.next()
      println(rs(0))
    }



  }
}

1.下面关子不可变数组说法正确的是?(C

A.可以随时修改其元素的值。

B.可以改变其大小。

C.-旦创建,内容和大小都不能改变。

D.不能使用素引访问

2.要创建-个可变 Array,需要(B

A.使用 val 关键字和 Arrey 类型。

B.导入scala.collection.mutable.ArrayBuffer,并使用

C,直接使用 Array 类型,无需导入其他库。

D.使用 vax 关键字和 Array 类型。

3.对于-个 Array,获取其长度使用(B)

A.可以随时修改其元素的值。

B.可以欧变其大小

C.一旦创建,内容和大小都不能改变。

D.不能使用索引访问无素。

4.创建一个可变Array,要(B

A使用val关键字和Array共型。

B.等入scala. collection mutable.ArrayBuffer并使用它创建。

C.直接使用Array兴型,无善导入共他库。

D.使用war关键字和Array共型。

5.财于一个Ary。联取美长庆使用(B

A.SLze属性。

B. length 黑性

C.count方法

D.没有专门的方法或属性获取长度。

6.在多维数组中,访问无素需要(B )

A.使用一个索马。

B.根据维度数量使用相应数量的索引。

C.不能直接访问无素。

D,使用特殊的访问方法。

7.grouped方法的作用是(B )

A.将数组无素随机打乱。

B.将数铝按照指定大小分组。

C.对数纪无素进行排序。

D.计算数组无素的总和。

相关推荐
AskHarries10 小时前
工具失败时怎么办:重试、回滚、人工确认和风险提示
后端·程序员
苏三说技术11 小时前
Claude Code从失控到起飞,只用了这些技巧
后端
长栎12 小时前
写 for 循环写了十年,你却从没用过迭代器模式最狠的那一面
后端
LiaCode12 小时前
Redis 在生产项目的使用
前端·后端
用户5598224812212 小时前
Docker Compose Down 导致容器数据误删——ext4 日志恢复全记录
后端
LiaCode12 小时前
一天学完 redis 的爽翻版核心知识总结
前端·后端
大刚测试开发实战12 小时前
如何内网穿透访问本地私有化部署的TestHub
前端·后端·github
xiaodaoluanzha13 小时前
迄今為止,最簡單的編程語言 Nolang
前端·后端
Csvn13 小时前
Docker 容器管理入门 — 从镜像到容器编排
后端
用户7623524259113 小时前
ShardingJDBC
后端