Scala之wordCount

代码

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输出键值对的值
    })
  }
}

总结

  1. Scala中声明变量不需要指明类型,即使需要指明类型,格式也应该如:var dict:File = new File(dictName)
  2. Scala中构造HashMap对象的方式: var map = new HashMap[String, Int]()  而且得注意使用的是mutable包下的HashMap,因为后面需要更新某些键值对的值
  3. Scala中添加键值对的方式:map += (key -> value) 更新值的方式:map(key)  = newValue 删除键值对的方式:map -= (key)
  4. Scala读取文件内容:scala.io.Source.fromFile(file).getLines()
  5. 访问map中entry的键和值的方式:访问键:entry._1 访问值:entry._2

 

你可能感兴趣的:(Scala,Scala)