Scala的Array练习题

### Scala 中关于 `Map` 的练习题 #### 构建并操作空的映射 创建一个指定类型的空映射,其键为字符串类型 (`String`) 而值为整数类型 (`Int`)。 ```scala var map3 = Map[String, Int]() ``` 此代码片段展示了如何声明和初始化一个空的不可变映射[^1]。如果希望使用可变映射,则可以导入 `scala.collection.mutable.Map` 并相应地修改声明方式: ```scala import scala.collection.mutable var mutableMap = mutable.Map[String, Int]() ``` #### 对现有映射中的数据执行变换 给定一个包含商品名称及其价格的映射,计算每项商品打九折后的价格,并打印新的映射结果。 ```scala package com.qf.scala.exercise object Ex { def main(args: Array[String]): Unit = { val map = Map("book" -> 100, "gun" -> 200, "ipad" -> 300) // 使用for推导式来遍历map并对value应用折扣 println(for ((key, value) <- map) yield (key, value * 0.9)) } } ``` 上述程序会输出一个新的映射,其中每个项目的值都乘以了0.9表示打了九折的价格[^2]。 #### 文件路径处理与读取文件内容到映射中 假设有一个文本文件位于特定位置,该文件内含若干条记录,每一条由两个部分组成——一个是作为键的名字,另一个是关联数值。下面是如何将这些信息加载至内存中的映射结构内的例子。 ```scala val filePath = "C:\\Users\\17591\\Desktop\\scala\\data.txt" // 假设 data.txt 内容如下: // apple 10 // banana 20 // orange 30 def loadFileToMap(filePath: String): Map[String, Int] = { import scala.io.Source Source.fromFile(filePath).getLines().foldLeft(Map.empty[String, Int]) { case (acc, line) => val parts = line.split("\\s+") acc + (parts(0) -> parts(1).toInt) } } println(loadFileToMap(filePath)) ``` 这段代码首先指定了要读取的目标文件的位置;接着定义了一个函数用于打开文件并将每一行解析成键值对的形式存入返回的结果集中[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值