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

相关推荐
凡人叶枫40 分钟前
Effective C++ 条款22:将成员变量声明为 private
linux·开发语言·c++
Qt程序员1 小时前
掌握 Linux 内核调度:从原理到实现(进程篇)
java·开发语言
code bean1 小时前
【LangChain】检索器完全指南:从向量检索到生产级 RAG 架构
java·开发语言·微服务
LabVIEW开发1 小时前
LabVIEW + MATLAB 混合编程:爆炸场测试数据精准采集方案
开发语言·matlab·labview
嵌入式协会20240721 小时前
(已解决)MinIO python 获取预签名出现forbidden、errornetwork等错误
java·开发语言·python
宸丶一1 小时前
Day 14:任务追踪 - 让 Agent 拥有项目管理能力
开发语言·python
小短腿的代码世界1 小时前
Qt行情协议解析与二进制编解码优化:从FIX到自定义协议的全链路架构
开发语言·qt·架构
skylar02 小时前
小白1分钟安装flash-attn
开发语言·python
默子昂2 小时前
ollama 自定义ui
开发语言·python·ui
赴生-3 小时前
C++进阶 C++11(下)
开发语言·c++