Scala数组

数组

  • 可变数组:以 ArrayBuffer 创建,可灵活增删改元素 ,如 ArrayBuffer(1, 2, 3) ,并通过 append 等方法操作。
  • 不可变数组:由 Array 构建,创建后元素不可变,可借助 toBuffer 等方法转换为可变形式 ,像 Array(1, 2, 3) 。

arr1.toBuffer // 组转

arr2.toArray //可变 不可 数组

  • 多维数组:用 Array.ofDim 创建,如 Array.ofDim[Int](3, 4) 表示3行4列数组 。

列表

  • 不可变List:默认不可变,元素有序且可重复,支持创建、元素添加(如 :+ 操作 )、扁平化等操作 ,示例 List(1, 2, 3) 。
  • 可变ListBuffer:可变集合,通过 collection.mutable.ListBuffer 导入,可实现元素的增删 ,如 ListBuffer(1, 2, 3) , += 添加元素 。

集合

  • 不可变Set:元素无序且唯一,可进行常规创建、添加( + )、删除( - )元素操作 ,例如 Set(1, 2, 3) 。
  • 可变HashSet:借助 scala.collection.mutable.HashSet 导入,具备可变特性,能对元素进行增删 ,如 HashSet(1, 2, 3) 。
    1. 创建可变集合 mutable.Set
    2. 打印集合
    3. 集合添加元素
    4. 向集合中添加元素,返回一个新的 Set
    5. 删除数据

元组

能容纳不同类型元素,通过索引访问 ,例如 (1, "abc", 3.0) ,使用 ._1 、 ._2 等访问对应位置元素 。

Map

  • 不可变Map:以键值对形式存在,不可变,可创建、查找 ,如 Map("key1" -> 1, "key2" -> 2) , get 方法取值 。
    1. 创建不可变集合 Map
    2. 循环打印
    3. 访问数据
    4. 如果 key 不存在,返回 0
  • 可变mutable.Map:经 scala.collection.mutable.Map 引入,可变,可进行键值对的增删改 ,如 mutable.Map("key" -> 1) 。
    1. 创建可变集合
    2. 打印集合
    3. 向集合增加数据
    4. 删除数据

集合常用函数

基本属性和常用操作

获取集合 长度获取集合大小 循环遍历 迭代器 生成字符串 是否包含

衍生集合

    1. 获取集合的头
    1. 获取集合的尾(不是头的就是尾)
    2. 集合最后一个数据
    3. 集合初始数据(不包含最后一个)
    4. 反转
    5. 取前(后)n 个元素
    6. 去掉前(后)n 个元素
    7. 并集
    8. 交集
    9. 差集
    10. 拉链
    11. 滑窗

集合计算简单函数

    1. 求和
    2. 求乘积
    3. 最大值
    4. 最小值
    5. 排序
  1. sorted

对一个集合进行自然排序,通过传递隐式的Ordering

  1. sortBy

对一个属性或多个属性进行排序,通过它的类型。

  1. sortWith

基于函数的排序,通过一个 comparator 函数,实现自定义排序的逻辑

相关推荐
冷雨夜中漫步1 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
易安说AI2 小时前
Claude Opus 4.6 凌晨发布,我体验了一整晚,说说真实感受。
后端
易安说AI2 小时前
Ralph Loop 让Claude无止尽干活的牛马...
前端·后端
易安说AI2 小时前
用 Claude Code 远程分析生产日志,追踪 Claude Max 账户被封原因
后端
颜酱3 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
m0_736919103 小时前
C++代码风格检查工具
开发语言·c++·算法
2501_944934734 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
黎雁·泠崖4 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
2301_763472465 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
TechWJ5 小时前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto