scala 提供了丰富的集合 API ,就像groupBy()
groupBy()使用实例
下面是一个Strings 的集合
val sports = Seq("baseball", "ice hockey", "football", "basketball", "110m hurdles", "field hockey")
这里的scala 类型推断如下。
执行
sports.groupBy(_.charAt(0))
我们可以将这些运动名称按照字母分组,我们就需要一个鉴别的函数,该函数接受每个元素并返回第一个字符。
运行结果
contains()
在上面,contains()是一个函数,如果“ ball”是这项运动的名称,它将返回true,否则返回false。 我们希望Map中最多包含两个条目,一个以true为键,一个以false为键。 当我们在解释器中检查它时,我们得到:
sports.groupBy(_.contains("ball"))
模式匹配使用
sports.groupBy {
case sport if sport.contains("ball") => "Balls"
case sport if sport.contains("hockey") => "Sticks"
case _ => "Other"
}