如何找到类属性的最小/最大并返回其对象?

  • 本文关键字:返回 对象 何找 属性 kotlin
  • 更新时间 :
  • 英文 :


我有一些类对象

class City (val name: String) {
var degrees: Int = 0
}
val city1 = City("city1")
city1.degrees = 10
val city2 = City("city2")
city2.degrees = 20
val city3 = City("city3")
city3.degrees = 30

如何找到3个城市的最小/最大度并返回它的对象?

您可以将它们放入列表(或其他可迭代对象)中,然后使用minByOrNull或maxByOrNull:

val cityWithMaxDegrees = listOf(city1, city2, city3).maxByOrNull { it.degrees }

注意,如果列表为空,maxByOrNull将返回null,因此您必须处理它。也是已弃用的maxBy/minBy的情况,这就是它们被弃用的原因。将来,maxBy/minBy可以重新引入非空返回类型,并在空列表时抛出异常。

最新更新