如何在元组列表中找到最大值?

Sha*_*kti 15 scala

我有以下元组列表:

val arr = List(('a',10),('b',2),('c',3))
Run Code Online (Sandbox Code Playgroud)

如何找到最大键或最大值的元组?

正确的答案应该是(c, 3)按字典顺序或('a', 10)最大值的最大键.

om-*_*nom 38

十分简单:

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)
Run Code Online (Sandbox Code Playgroud)

因此,基本上您可以提供List[T]任何函数T => B(B可以是任何有序类型,例如IntString通过示例),用于查找最大值.

  • +1,但重要的是要注意,我相信它会因空列表而失败.`scala> val list:List [(String,Int)] = Nil list:List [(String,Int)] = List()| scala> list.maxBy(_._ 2)|**java.lang.UnsupportedOperationException:empty.maxBy**` (4认同)