Scala 【 5 数组常见操作和 Map 】

数组的常见操作 val a = Array(1,2,3,4,5) //数组求和 val sum = a.sum //获取数组的最大值 val max = a.max //对数组进行排序 scala.until.Sorting.quickSort(a) //获取数据的所有元素内容 a.mkString //用符号分隔开 a.mkString(,) //加上左右符号 a.mkString() //toString 函数 a.toString b.toString 使用 yield 和函数式变成转换数组 // 对 Array 进行转换 val a = Array(1,2,3,4,5) va 在 Scala 中,数组和 Map 是两种非常常用的数据结构。数组用于存储同类型的固定大小的数据集合,而 Map 则用于存储键值对。接下来,我们将详细探讨数组的常见操作以及 Map 的使用方法。 **数组操作** 1. **创建数组**: ```scala val a = Array(1, 2, 3, 4, 5) ``` 2. **数组求和**: ```scala val sum = a.sum ``` 这将计算数组所有元素的和。 3. **获取最大值**: ```scala val max = a.max ``` 这将返回数组中的最大值。 4. **排序数组**: ```scala scala.util.Sorting.quickSort(a) ``` 快速排序算法用于对数组进行排序。 5. **获取数组元素内容**: ```scala a.mkString // 默认使用逗号分隔 a.mkString(",") // 指定分隔符 a.mkString("") // 不使用分隔符 a.toString // 转换为字符串形式 ``` 6. **使用 `yield` 和函数式编程转换数组**: ```scala val a1 = for (ele <- a) yield ele * ele val b = ArrayBuffer[Int]() b += (1, 2, 3, 4, 5) val b1 = for (ele <- b) yield ele * ele val a2 = for (ele <- a if ele % 2 == 0) yield ele * ele ``` 这里展示了如何使用 `for` 表达式和 `yield` 将数组元素转换为新数组。 7. **函数式编程转换数组**: ```scala a.filter(_ % 2 == 0).map(_ * 2) a.filter{_ % 2 == 0} map{_ *2} ``` 这些是使用函数式编程过滤和映射数组元素的等价表达。 **Map 操作** 1. **创建不可变 Map**: ```scala val ages = Map("Li" -> 18, "Chy" -> 19) ``` 创建一个键值对的不可变 Map。 2. **创建可变 Map**: ```scala val ages = scala.collection.mutable.Map("Li" -> 18, "Chy" -> 19) ``` 创建一个可以修改的 Map。 3. **访问 Map 元素**: ```scala val LiAge = ages("Li") val LiAge = if (ages.contains("Li")) ages("Li") else 0 val LiAge = ages.getOrElse("Li", 0) ``` 通过键来获取值,如果键不存在,可以使用 `contains` 检查,或者使用 `getOrElse` 提供默认值。 4. **修改 Map 元素**: ```scala ages("Li") = 20 ages += ("Ni" -> 20, "Yue" -> 21) ages -= "Ni" ``` 可变 Map 支持直接更新、添加和删除元素。 5. **更新不可变 Map**: ```scala val ages1 = ages + ("Ni" -> 20, "Yue" -> 21) val ages2 = ages - "Ni" ``` 不可变 Map 的更新实际上创建了新的 Map 实例。 6. **遍历 Map**: ```scala for ((key, value) <- ages) println(key + " " + value) for (key <- ages.keySet) println(key) for (value <- ages.values) println(value) ``` 可以使用 `for` 表达式遍历 Map 的键值对、键或值。 7. **反转键值对**: ```scala for ((key, value) <- ages) yield (value, key) ``` 如果键重复,最后出现的值将会覆盖前面的值。 8. **SortedMap 和 LinkedHashMap**: - **SortedMap** 自动按键排序: ```scala val ages = scala.collection.immutable.SortedMap("Li" -> 12, "Cui" -> 14, "Yue" -> 5) ``` - **LinkedHashMap** 保持插入顺序: ```scala val ages = new scala.collection.mutable.LinkedHashMap[String, Int] ages("Cui") = 14 ages("Li") = 12 ages("Yue") = 5 ``` 这些是 Scala 中数组和 Map 的基本操作,它们提供了丰富的功能,使得在处理数据时具有很高的灵活性和效率。理解并熟练运用这些操作是 Scala 编程的基础。




























- 粉丝: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 采暖系统水力计算课件.ppt
- 农民工工资突发事件应急预案.docx
- 第三章-封装与测试技术ok.ppt
- 中央空调安装工程施工承包合同(电气)修改.doc
- [标杆房企]商业综合体项目竞品分析研究报告(附图丰富).pdf
- 第四章-工程招投标实例及案例分析.ppt
- 广靶代谢方案模板-20181123.docx
- 排水-雨水管道施工方案.pdf
- 容易搞错的钢结构知识点总结.doc
- 黄河水利工程维修养护合同(官方范本).doc
- 华彩—XX集团招聘管理制度.doc
- 机电安装基础(电气一局).ppt
- 弱电系统深化设计管理制度.doc
- 钻孔压浆灌注桩施工.doc
- 高层钢结构施工测量放线工法(全站仪-三维坐标定位).doc
- 大跨度钢桁架结构滑移支座纠偏吊装施工技术(基础偏位不稳定条件下).doc



- 1
- 2
前往页