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

相关推荐
神仙别闹几秒前
基于C语言实现 TINY+ 编译器
c语言·开发语言·数据库
mudtools4 分钟前
在.NET现有系统中快速集成飞书任务分配能力
后端·c#·.net
Wang's Blog5 分钟前
Java 项目实战: 外卖平台优化-从库Slave配置与主从复制验证
java·开发语言
知守观5 分钟前
ThreadLocal + 异步线程导致用户数据串号:一次跨请求数据泄漏的完整复盘
后端
前端冒菜师7 分钟前
我为什么做了 Iris,又为什么停下了它
后端·ai编程
子一!!8 分钟前
集成Spring家族的Spring论坛实战==一阶段
java·后端·spring
Ticnix9 分钟前
你的 Agent 聊到第 20 轮就"失忆"?你管理的是历史,高手管理的是上下文
后端·python·agent
不合格的程序员9 分钟前
Agent Memory架构设计与实现
后端·ai编程
用户938169125536015 分钟前
分页查询 Out of sort memory 问题
后端
xyLJ22 分钟前
为什么 Spring Boot 自动配置了 Redis,还要自己写 RedisTemplate?
后端