Kotlin-在一个集合中使用其关键点获得最大值



我定义了一个集合,如下所示。

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

最新更新