元组列表中每个第一个元素的scala获得第二个元素的最大值

scala for every first element in a list of tuples get max of the second element

我有一个如下所示的元组列表

List((a,1), (a,2), (b,2), (b,1)) 

我想从上面的列表创建一个如下所示的列表

List((a,2), (b,2))

只有一个第一个元素和第二个元素的MAX。我怎样才能简洁地做到这一点?

由于您只需要一次相同值的第一个元素以及相应的第二个元素的最大值,这与将问题改写为 for every distinct 1st element in the tuple list, list the max 2nd element:

没有区别
val l = List(("a",1), ("a",2), ("b",2), ("b",1))

l.groupBy(_._1).
  mapValues( _.map(_._2).max ).
  toList
// res1: List[(String, Int)] = List((b,2), (a,2))