如何在Kotlin应用程序中找到最小最大值



我做了一个统计计算器,我需要存储10个用户输入的值,存储在一个数组中,我可以得到平均值和最低数值。我如何从数组中获取值来获得最大值和最小值呢?

var values = ArrayList<Int>()
var count = 0
var arrCount = 0

addButt.setOnClickListener {

values.add(statNum.text.toString().toInt())
count++
arrCount++
var i = 0
statNum.setText("")
statArray.text = ""
for (i in 0..arrCount - 1) {
statArray.text = statArray.text as String + values[i] + ","
}
}

avgBut.setOnClickListener{
val statArray = doubleArrayOf(4.0, 7.0, 11.0, 12.0, 9.0)
var sum = 0.0
for (num in statArray) {
sum += num
}
val average = sum / statArray.size
finalAnswer.text = average.toString()
}
minmaxBut.setOnClickListener{
fun findMin(list: List<Int?>): Int? {
return list.sortedWith(compareBy { it }).first()
}
fun findMax(list: List<Int?>): Int? {
return list.sortedWith(compareBy { it }).last()
}
fun main() {
val list = listOf(10, 4, 2, 7, 6, 9)
val min = findMin(list)
finalAnswer.text = "Min Vale = $min"
val max = findMax(list)
println(max)            // 10
}

在数组列表中很容易得到min,maxaverage的编号。我没有清楚地理解你的代码,但我会分享你如何做到这些。之后你可以在你的数组中使用:

val list = arrayListOf<Int>(1,2,3,4,5,6,7,8,9,10)
Log.e("min", list.min().toString())
Log.e("max", list.max().toString())
Log.e("average", list.average().toString())

这将在logcat中给出以下输出:

E/min: 1
E/max: 10
E/average: 5.5

最新更新