我目前有2个数组,每个数组包含5个对象。所有对象都包含 Int
变量。
样例数据:
data class Demo(val number: Int, val name: String)
val a = Demo(12, "a")
val b = Demo(1, "b")
val c = Demo(3, "c")
val d = Demo(5, "d")
val e = Demo(17, "e")
val array1 = arrayOf(a,b,c,d,e)
val f = Demo(3, "f")
val g = Demo(8, "g")
val h = Demo(15, "h")
val i = Demo(16, "i")
val j = Demo(22, "j")
val array2 = arrayOf(f,g,h,i,j)
//val array3 = ??
我想要做的是创建一个函数,它将过滤这些数组中的最大值。现在我知道 Kotlin 的数组上有一个叫做
max()
的方法,它会返回所使用的数组的最大值。这让我想到(目前我正在使用嵌套 for 循环,就像 Java 中的某人一样),在 Kotlin 中是否有更快/更好的方法来完成这个任务?
使用示例数据的预期输出:
array3[22,17,16,15,12]
数字
和名称
的对象呢?(如果您想按数字
排序)您会如何解决? - Ivar ReukerssortedByDescending
来实现,例如(array1 + array2).sortedByDescending { it.number }.take(5)
。 - Kevin Robatelwhen(it) {is Demo -> {it.number} is Demo2 -> {it.id} else null}
的代码。 - Kevin Robatelarray1.zip(array2) { l,r -> Math.max(l,r)}.sortedByDescending()
也是一个选项。 - Lovis