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 编程的基础。
- 粉丝: 4
- 资源: 901
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 通过C#实现冒泡排序示例代码(含代码解释)
- 保险交叉销售预测数据集.zip
- StartAllBack-3.6.3-setup, win不同风格的开始菜单
- c语言实现希尔排序基础
- emoji表情使用趋势数据集.zip
- 抖音 douyin 视频评论 spider
- Beyond.Compare.v3.1.10
- 2016年年度培训计划及跟踪表.xls
- 2016年公司员工年度培训计划表.xls
- 《如何设计年度培训计划与预算方案》.ppt
- 公司培训规划之一--员工素养培训(PPT 63页).ppt
- 麦肯锡:进度安排培训.ppt
- 北大讲义《如何设计年度培训计划与预算方案》.ppt
- 美的校园招聘面试官培训方案(ppt 14页).ppt
- 培训与发展.ppt
- 培训管理.ppt
- 1
- 2
前往页