案例说明
有一个list,有3个元素,内容如下图左1,统计每个名字出现的次数
步骤:
- 将每一个元素,按照空格拆分字符串,结果如上图左2
- 根据元素进行分组,结果如上图左3
- 对分组后的元素,统计其个数,结果如上图右1
代码
val l=Array("李雷 韩梅梅","李雷 lili","韩梅梅 lucy")
//根据空格拆分字符串
val l2=l.flatMap(_.split(" "))
l2.foreach(println)
println("---------------")
//根据元素进行分组
val m=l2.groupBy(s=>s)
l2.foreach(println)
println("---------------")
//对分组后的元素,统计其个数
val m2=m.map( e =>(e._1,e._2.size))
m2.foreach(println)
解释
val l4: Map[String, Int] = m.map( e =>(e._1,e._2.size))
根据lambda表达式返回的类型,决定 m.map() 的返回类型
当lambda表达式返回类型是 2个元素的tuple 时,m.map() 的返回类型是 Map[Sring,Int]
lambda表达式返回类型是其他类型时,m.map() 的返回类型是 immutable.Iterable
