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

相关推荐
CodeSheep5 分钟前
同事去年绩效是C,提离职领导死活不让走,后来领导私下说他走了,就没人背这个绩效了
前端·后端·程序员
怕浪猫6 分钟前
第19章:Go语言工具链与工程实践
后端·go·编程语言
BingoGo37 分钟前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·laravel
风象南1 小时前
WHAT? AI把我仓库内容全删了!!!
后端
摸鱼的春哥1 小时前
春哥的Agent通关秘籍12:本地RAG实战(中下)向量化与落库
前端·javascript·后端
JaguarJack1 小时前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
摸鱼的春哥1 小时前
专家实验让AI做战争决策,AI的选择太暴力了
前端·javascript·后端
Victor3568 小时前
MongoDB(15) 如何在MongoDB中启用身份验证?
后端
Victor3568 小时前
MongoDB(14)如何修改MongoDB的默认端口?
后端
怒放吧德德10 小时前
Spring Boot 实战:RSA+AES 接口全链路加解密(防篡改 / 防重放)
java·spring boot·后端