私は現在2つの配列を持っていて、どちらも5つのオブジェクトを含んでいます。すべてのオブジェクトにはInt
個の変数が含まれています。2アレイから最大値をフィルタリングするKotlinの方法?
サンプルデータ:
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()
という配列のメソッドを持っていることを知っています。
これは私が不思議に思っていた(現在、私は誰かがJavaのようにネストされたfor-loopを使用しています)、視覚的に美しいです Kotlinでそうするより速く/サンプルデータを使用して
予想される出力:
array3[22,17,16,15,12]
[OK]を、しかし、どのようにだろうこの値を解決するには、2つの値、 'number'と' name' feを含むオブジェクトがありますか? ( 'number'をソートしたい場合) – Ivaro18
は、データクラスオブジェクト – Ivaro18
で答えを編集しました。'(array1 + array2).sortedByDescending {it.number}のように 'sortedByDescending'を使うことができます。take(5) ' –