scala WordCount

WordCount

复制代码
package scala

import scala.io.Source

object Demo22WordCount {
  def main(args: Array[String]): Unit = {

    //1、读取文件
    //转换成集合
    val lines: List[String] = Source.fromFile("data/words.txt").getLines().toList

    //将每一行单词拆分出来,一行转换成多行
    val words: List[String] = lines.flatMap((line :String ) => line.split(","))

   //3、按照单词进行分组
    //key 是单词 value 是单词的集合
    val group: Map[String, List[String]] = words.groupBy((word:String ) => word)

    //4、统计单词的数量,统计集合的长度
    val count: Map[String, Int] =group.map((kv:(String ,List[String] ))=>{
      //当前集合
      val word: String = kv._1
      //集合的长度
      val ws: List[String] = kv._2
      //单词的数量
      val num: Int = ws.length

      (word,num)
    })

    count.foreach(println)

    //简写
    Source
      .fromFile("data/words.txt")
      .getLines() //获取所有行
      .toList //转换成集合
      .flatMap(_.split(",")) //将每一行的单词拆分出来
      .groupBy(w => w) //按照单词分组
      .mapValues(_.length) //统计单词的数量
      .foreach(println)


  }
}
复制代码

 

posted @   坤坤无敌  阅读(86)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示