我定义了一个集合,如下所示。
val resultSet: Set<Pair<Driver,Int>>
如何用其密钥获得上述resultSet
集的最大值?
您可以使用maxBy
函数。它返回由传递给它的提取器给定的最大值,如果集合为空,则返回null。你可以这样做:
val maxPair = resultSet.maxBy { it.second }
假设您想按对中的Int
值进行排序:
val max: Pair<Driver, Int> = resultSet.maxBy { it.second }
自Kotlin 1.4以来,此方法已重命名为maxByOrNull或maxWithOrNull
val maxPair = resultSet.maxByOrNull { it.second }
val maxPair = resultSet.maxWithOrNull(compareBy {it.second})
参考文献:
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/max-or-null.html
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/max-by-or-null.html