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.计算数组无素的总和。

相关推荐
xifangge20252 小时前
基于 JavaScript 实现 CNC 数控切削参数与螺纹公差纯前端核算引擎
开发语言·前端·javascript
“AI国潮设计-小江”2 小时前
【AIGC实战】Python+SDXL批量生成「潮汕英歌舞冰淇淋蛋糕&红桃粿咖啡」IP,固定角色形象批量出甜品商业效果图
开发语言·人工智能·python·prompt·aigc
\光辉岁月/3 小时前
3.包装类
java·开发语言·包装类
lazy H3 小时前
【计算机网络】第 2 篇:一条数据如何穿过网络?彻底理解数据封装与解封装
网络·经验分享·后端·学习·计算机网络
我命由我123453 小时前
软件工程概念 - 可插拔性
java·后端·学习·java-ee·系统架构·软件工程·学习方法
Bazingga3 小时前
RAG路由全景:一个问题走到岔路口,谁来指路
后端
云边有个稻草人3 小时前
从日志到落库:数据集成产品 KFS 如何打通异构数据库实时同步链路
后端
努力小陈13 小时前
从 Java 到 Go:后端工程师的 30 分钟语法速查
后端
Thneonl3 小时前
一个 502,十种病因:nginx 反代排障分诊树
后端·架构
花间相见3 小时前
【计算基础|MySQL09】索引(下):失效与设计
数据库·后端·面试