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 函数,实现自定义排序的逻辑

相关推荐
有意义3 分钟前
从零搭建:json-server+Bootstrap+OpenAI 全栈 AI 小项目
前端·后端·llm
2301_803554529 分钟前
C++ 锁类型大全详解
开发语言·c++
wuwu_q15 分钟前
用通俗易懂方式,详细讲讲 Kotlin Flow 中的 map 操作符
android·开发语言·kotlin
曼巴UE519 分钟前
UE5 C++ Slate 画曲线
开发语言·c++·ue5
向葭奔赴♡25 分钟前
Spring IOC/DI 与 MVC 从入门到实战
java·开发语言
minji...29 分钟前
C++ 面向对象三大特性之一---多态
开发语言·c++
散峰而望35 分钟前
基本魔法语言函数(一)(C语言)
c语言·开发语言·编辑器·github
汤姆yu1 小时前
基于springboot的民间救援队救助系统
java·spring boot·后端·救援队
lucky_syq1 小时前
Scala与Spark算子:大数据处理的黄金搭档
开发语言·spark·scala
IT_陈寒1 小时前
React性能优化实战:这5个Hooks技巧让我的应用快了40%
前端·人工智能·后端