代码
import scala.collection.mutable.HashMap
import scala.io.Source
object Test {
def main(args: Array[String]): Unit = {
wordCount("dictName")
}
def wordCount(dictName: String): Unit ={
// 声明变量不需要指定类型!
var dict = new File(dictName)
var files = dict.listFiles()
var listFiles = files.toList
var map = new HashMap[String, Int]() // 需要使用mutable类型的HashMap,因为后面需要修改
map的键值对
listFiles.foreach(file => Source.fromFile(file).getLines().foreach(
line => line.split("\n").foreach(
word => {
if (map.contains(word))
map(word) += 1 // 使用这种方式更新map的键值对
else
map += (word -> 1)
}
)
))
map.foreach(kv => {
println(kv._1 + ":" + kv._2) // 使用kv._1输出键值对的键 kv._2输出键值对的值
})
}
}
总结
- Scala中声明变量不需要指明类型,即使需要指明类型,格式也应该如:var dict:File = new File(dictName)
- Scala中构造HashMap对象的方式: var map = new HashMap[String, Int]() 而且得注意使用的是mutable包下的HashMap,因为后面需要更新某些键值对的值
- Scala中添加键值对的方式:map += (key -> value) 更新值的方式:map(key) = newValue 删除键值对的方式:map -= (key)
- Scala读取文件内容:scala.io.Source.fromFile(file).getLines()
- 访问map中entry的键和值的方式:访问键:entry._1 访问值:entry._2