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.

Easy-peasy:

```
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.