Kotlin如何查找类属性的最小/最大值并返回对应的实例对象
实现方法
你可以直接借助Kotlin标准库的集合操作函数完成需求,只需要两步:
- 将3个City实例存入列表
- 调用
maxByOrNull、minByOrNull方法,指定按degrees属性比较即可直接拿到对应对象
示例代码如下:
// 把待比较的对象存入列表 val cityList = listOf(city1, city2, city3) // 取degrees属性最大的City对象 val maxDegreeCity = cityList.maxByOrNull { it.degrees } // 取degrees属性最小的City对象 val minDegreeCity = cityList.minByOrNull { it.degrees } // 验证输出 println("最高温城市:${maxDegreeCity?.name},温度:${maxDegreeCity?.degrees}") println("最低温城市:${minDegreeCity?.name},温度:${minDegreeCity?.degrees}")
运行后输出结果:
最高温城市:city3,温度:30 最低温城市:city1,温度:10
补充说明
- 如果你使用的是较早版本的Kotlin,也可以使用已经废弃的
maxBy/minBy方法,用法完全一致,区别是旧方法在列表为空时会抛出异常,而*OrNull版本会返回null,安全性更高。 - 如果列表中存在多个
degrees值相同的最大/最小值对象,方法会返回第一个匹配到的实例。
内容的提问来源于stack exchange,提问作者Dark Light
相关产品推荐
相关产品推荐

