Вы можете использовать maxBy и minBy из стандартной библиотеки kotlin, чтобы получить объект, имеющий максимальную и минимальную длину, а затем использовать их свойства для вывода их значений.
data class Runningpath(val name: String, val length: Int, val spot: String)
fun main() {
println("Warming up")
val input1 = Runningpath("in Forest", 2000, "some houses")
val input2 = Runningpath("at lake", 1500, "a school")
val input3 = Runningpath("in mountain", 2800, "under sky")
val paths = arrayOf(input1, input2, input3)
printMaxMinPath(paths)
}
fun printMaxMinPath(paths: Array<RunningPath>) {
val max = path.maxBy { it.length }
val min = path.minBy { it.length }
println("The shortest path is with ${min.length} m. It is the path ${min.name} near ${min.spot}")
println("The longest path is with ${max.length} m. It is the path ${max.name} near ${max.spot}")
}
Изменить: minBy и maxBy могут возвращать null, если предоставленный массив был нулевым. Вы должны безопасно утверждать их, вы можете сделать это перед печатью чего-либо, как показано ниже.
fun printMaxMinPath(paths: Array<RunningPath>) {
val max = path.maxBy { it.length }
val min = path.minBy { it.length }
min?.run { println("The shortest path is with $length m. It is the path $name near $spot") }
max?.run { println("The longest path is with $length m. It is the path $name near $spot") }
}