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)
}
}
标签:map,String,val,scala02,kv,._,_._ 来源: https://www.cnblogs.com/ftwftw/p/scala02.html