欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > Scala—数组(不可变数组Array、可变数组ArrayBuffer)用法详解

Scala—数组(不可变数组Array、可变数组ArrayBuffer)用法详解

2026/5/31 7:38:22 来源:https://blog.csdn.net/weixin_48935611/article/details/144035093  浏览:    关键词:Scala—数组(不可变数组Array、可变数组ArrayBuffer)用法详解

Scala集合概述-链接

大家可以点击上方链接,先对Scala的集合有一个整体的概念🤣🤣🤣

在这里插入图片描述

在 Scala 中,数组是一种特殊的集合类型,可以是可变的也可以是不可变的。

在这里插入图片描述

1. 不可变数组

在 Scala 中,不可变数组通常指的是 Array 类型。Array 类型在 JVM 上直接映射为 Java 数组,因此的性能非常高。

不可变数组支持索引访问和修改,但修改操作不会创建新的数组。

  • 创建不可变数组

在这里插入图片描述

  • 访问和修改数组元素

在这里插入图片描述

常用方法可以看我这篇文章哈,总结的有三十个方法(包括多维数组用法),够用啦🤣

数组常用方法—链接

在这里插入图片描述


2. 可变数组

在 Scala 中,可变数组通常指的是 ArrayBuffer 类型,位于 scala.collection.mutable 包中。
在这里插入图片描述

ArrayBuffer 是一个动态数组,支持高效的添加和删除操作。

在这里插入图片描述

看看下面总结的方法,会用就行🤣🤣🤣:

  1. 创建 ArrayBuffer

import scala.collection.mutable.ArrayBuffer// 创建一个空的 ArrayBuffer
val buffer = ArrayBuffer[Int]()// 创建一个包含初始元素的 ArrayBuffer
val buffer2 = ArrayBuffer(1, 2, 3, 4, 5)

在这里插入图片描述

  1. 添加元素

    • +=:添加一个元素
    • ++=:添加多个元素(可以是另一个集合)
    • append:添加一个或多个元素
    • prepend:在开头添加一个或多个元素
    • insert: 在指定位置插入元素

buffer += 1 // 添加一个元素
buffer ++= Array(2, 3, 4) // 添加多个元素
buffer.append(5, 6) // 添加多个元素
buffer.prepend(0) // 在开头添加一个元素
buffer.insert(0,-1) // 在在指定位置插入数据
buffer.insert(0,-3,-2)

在这里插入图片描述

  1. 删除元素

    • -=:删除一个元素
    • --=:删除多个元素
    • remove:删除指定位置的元素
    • trimStart:删除开头的若干个元素
    • trimEnd:删除末尾的若干个元素

buffer -= 1 // 删除一个元素
buffer --= Array(2, 3) // 删除多个元素
buffer.remove(0) // 删除第一个元素
buffer.trimStart(2) // 删除开头的两个元素
buffer.trimEnd(2) // 删除末尾的两个元素

在这里插入图片描述

  1. 访问和修改元素

    • 索引访问:使用索引访问和修改元素
    • update:修改指定位置的元素

val firstElement = buffer(0) // 访问第一个元素
buffer(0) = 10 // 修改第一个元素

在这里插入图片描述

  1. 遍历元素

    • foreach:遍历所有元素
    • map:映射所有元素
    • filter:过滤元素

buffer.foreach(println) // 遍历并打印所有元素val squared = buffer.map(x => x * x) // 映射所有元素
println(squared.mkString(", ")) // 输出: 100, 36, 16val evenNumbers = buffer.filter(_ % 2 == 0) // 过滤偶数
println(evenNumbers.mkString(", ")) // 输出: 36

在这里插入图片描述

  1. 查找元素

    • contains:检查是否包含某个元素
    • indexOf:查找元素的索引
    • lastIndexOf:查找元素的最后一个索引

val contains10 = buffer.contains(10) // 检查是否包含 10
val index = buffer.indexOf(10) // 查找 10 的索引
val lastIndex = buffer.lastIndexOf(10) // 查找 10 的最后一个索引

在这里插入图片描述

  1. 排序和反转

    • sortWith:根据自定义比较器排序
    • sortBy:根据某个属性排序
    • reverse:反转数组

buffer.sortWith(_ < _) // 升序排序
buffer.sortBy(_.toString) // 根据字符串表示排序
buffer.reverse // 反转数组

在这里插入图片描述

  1. 转换为其他集合类型

    • toArray:转换为数组
    • toList:转换为列表
    • toSeq:转换为序列

val array = buffer.toArray // 转换为数组
val list = buffer.toList // 转换为列表
val seq = buffer.toSeq // 转换为序列

在这里插入图片描述


整理不易 一键三连呀列位😂😂😂

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词