Ich habe derzeit 2 Arrays, die jeweils 5 Objekte enthalten. Alle Objekte enthalten Int
Variablen.Kotlin Art der Filterung von Max Werten von 2 Arrays?
Beispieldaten:
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 = ??
Was ich versuche zu tun, um eine Funktion erstellen, die diese Arrays auf den Maximalwert filtern. Jetzt weiß ich, dass Kotlin eine Methode auf ihrem Array max()
hat, die den maximalen Wert des Arrays zurückgibt, auf dem es verwendet wird.
Das frage ich mich gemacht (zur Zeit bin ich mit verschachtelten for-Schleife wie jemand würde in Java.), Gibt es eine optisch schön schneller/besser Art und Weise so in Kotlin zu tun?
Erwartete Ausgabe mit Beispieldaten:
array3[22,17,16,15,12]
Ok, aber wie würden Sie auflösen das ist die Werte waren ein Objekt mit 2 Werten - 'number' und' name' fe? (wenn Sie nach 'number' sortieren wollen) – Ivaro18
editiert die Antwort mit den Datenklassenobjekten – Ivaro18
Sie können' sortedByDescending' für das wie '(array1 + array2) .sortedByDescending {it.number} verwenden.take (5) ' –