C/C++教程

scala02

本文主要是介绍scala02,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
/**
 * @auther :${user}
 * @date :2022/2/10 23:44
 *
 */
object test17 {
  def main(args: Array[String]): Unit = {
    val list: List[(String, Int)] = List(
      ("hello scala hbase kafka", 2),
      ("hello scala hbase", 2),
      ("hello scala hello", 1)
    )
    //思路一直接展开为普通版本
    val newList = list.map(
      kv => {
        (kv._1.trim + " ") * kv._2
      })
    println(newList)

    println(newList
      .flatMap(_.split(" "))
      .groupBy(word => word)
      .map(kv => (kv._1, kv._2.length))
      .toList
      .sortWith(_._2 > _._2))

    //思路二,基于与统计的结果进行转换

    val preCountList: List[(String, Int)] = list.flatMap(
      kv => {
        val strings: Array[String] = kv._1.split(" ")
        strings.map(key => (key, kv._2))
      }
    )
    val wordCountMap: Map[String, Int] = preCountList.groupBy(_._1).mapValues(
      tupleList => tupleList
        .map(_._2)
        .sum
    )
    val rankList: List[(String, Int)] = wordCountMap
      .toList
      .sortWith(_._2 > _._2)
      .take(3)
    println(rankList)
  }
}

这篇关于scala02的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!