Scala实现wordCount

用Scala实现wordCount,又是wordCount
废话不多说了直接上代码

val list = List("rose is beautiful","jennie is beautiful","lisa is beautiful","jisoo is beautiful")
    /**
      * 第一步,将list中的元素按照分隔符这里是空格拆分,然后展开
      * 先map(_.split(" "))将每一个元素按照空格拆分
      * 然后flatten展开
      * flatmap即为上面两个步骤的整合
      */
    val res0= list.map(_.split(" ")).flatten
    val res1= list.flatMap(_.split(" "))
    println("第一步结果")
    println(res0)
    println(res1)

在这里插入图片描述

/**
      * 第二步是将拆分后得到的每个单词生成一个元组
      * k是单词名称,v任意字符即可这里是1
      */
    val res3=res1.map((_,1))
    println("第二步结果")
    println(res3)
    /**
      * 第三步是根据相同的key合并
      */
    val res4=res3.groupBy(_._1)
    println("第三步结果")
    println(res4)
    /**
      * 最后一步是求出groupBy后的每个key对应的value的size大小,即单词出现的个数
    */
    val res5=res4.mapValues(_.size)
    println("最后一步结果")
    println(res5.toBuffer)
  }

在这里插入图片描述
代码整合起来就是

 val res8 = list.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.size)
    println(res8)

在这里插入图片描述

可以看出scala代码的优点,scala还是很有趣的

你可能感兴趣的:(Scala)