Scala学习记录,Array

数组:物理空间上连续的(一个挨一个)优势:根据下标能快速找到元素。

列表:物理空间上不连续(不是一个元素挨着一个元素的)优势:插入元素,删除较快。

Array定义:数组:物理空间上连续的(一个挨着一个)

格式:数组名(下标)

可变不可变:

默认为不可变数组

查看数组的元素。根据下标:格式 数组名(下标)

下标从0开始

如果超过最大的下标,会报错:.ArrayIndexOutOfBoundsException

遍历用:for , foreach , iterator

可变可对元素进行添加,删除等操作;不可变创建后元素不能修改

如果要定义可变的Array,需要额外导入包:import scala.collection.mutable.ArrayBuffer

小习一下:

1.下面关于不可变数组说法正确的是?( B )

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

B. 可以改变其大小。

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

D.不能使用索引访间元素。

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

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

B. 导入 scala. collection. mutable.ArrayBuffer 并使用他创建

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

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

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

A. size 属性。

B. length 属性。

C. count 方法

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

  1. 在多维数组中,访间元素需要( B )

A.使用一个索引。

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

C. 不能直接访问元素

D. 使用待殊的询问方法。

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

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

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

C .对数组元案进行排序。

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

实训训练:

任务背景:梦想清单管理。

  1. 使用 case class 定义DreamItem类。它的属性有:内容,是否完成,截止日期,优先级。

2.定义可变Array 来保存DreamItem。

3.添加3个梦想

4.将第2个梦想设置为已完成。

5.调高第3个梦想的优先级

6.根据优先级进行从高到低排序

7.把优先级排名前5的梦想保存到一个新的列表中

8.循环输出梦想列表

Scala 复制代码
// 1. 使用case class定义DreamItem类
case class DreamItem(content: String, isCompleted: Boolean, dueDate: String, priority: Int)
 
object DreamListManagement {
  def main(args: Array[String]) {
    // 2. 定义可变Array来保存DreamItem
    import scala.collection.mutable.ArrayBuffer
    val dreamList = ArrayBuffer[DreamItem]()
 
    // 3. 添加3个梦想
    dreamList += DreamItem("去旅行", false, "2025-12-31", 3)
    dreamList += DreamItem("学习一门新语言", false, "2026-06-30", 2)
    dreamList += DreamItem("完成一个重要项目", false, "2024-12-31", 1)
 
    // 4. 将第2个梦想设置为已完成
    dreamList(1) = dreamList(1).copy(isCompleted = true)
 
    // 5. 调高第3个梦想的优先级
    dreamList(2) = dreamList(2).copy(priority = 4)
 
    // 6. 根据优先级进行从高到低排序
    val sortedDreamList = dreamList.sortBy(_.priority)(Ordering.Int.reverse)
 
    // 7. 把优先级排名前5的梦想保存到一个新的列表中
    val top5Dreams = sortedDreamList.take(5)
 
    // 8. 循环输出梦想列表
    println("梦想列表:")
    top5Dreams.foreach(dream => println(s"内容: ${dream.content}, 是否完成: ${dream.isCompleted}, 截止日期: ${dream.dueDate}, 优先级: ${dream.priority}"))
  }
}
相关推荐
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码5 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下5 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。5 天前
2026.2.25监控学习
学习
im_AMBER5 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J5 天前
从“Hello World“ 开始 C++
c语言·c++·学习