How to find max in a list of tuples?


I have the following list of tuples:

val arr = List(('a',10),('b',2),('c',3))

How to find the tuple with the max key or max value?

The proper answer should be (c, 3) for max key lexicographically or ('a', 10) for max value.


scala> val list = List(('a',10),('b',2),('c',3))
list: List[(Char, Int)] = List((a,10), (b,2), (c,3))

scala> val maxByKey = list.maxBy(_._1)
maxByKey: (Char, Int) = (c,3)

scala> val maxByVal = list.maxBy(_._2)
maxByVal: (Char, Int) = (a,10)

So basically you can provide to List[T] any function T => B (where B can be any ordered type, such as Int or String by example) that will be used to find the maximum.