Wenn es ein Array
ist, ist es wahrscheinlich typisch an Ort und Stelle verwenden Sortieralgorithmen. Im idiomatischen Scala-Code werden jedoch veränderbare Sammlungen normalerweise nicht unterstützt. Wenn das der Fall ist, und Sie haben am unveränderlichen Sammlung (oder mögen nicht die Array
anstelle ändern), verwendet sortWith
:
scala> val a = Array(1, 3, 2, 5)
a: Array[Int] = Array(1, 3, 2, 5)
scala> a.sortWith(_ > _)
res6: Array[Int] = Array(5, 3, 2, 1)
scala> a
res7: Array[Int] = Array(1, 3, 2, 5)
ein Array
oder jede andere Sammlung von Tupeln Sortierung:
scala> val a = Array(('a', 1), ('b', 4), ('c', 5), ('d', 2))
a: Array[(Char, Int)] = Array((a,1), (b,4), (c,5), (d,2))
scala> a.sortWith(_._2 > _._2)
res4: Array[(Char, Int)] = Array((c,5), (b,4), (d,2), (a,1))
scala> a
res5: Array[(Char, Int)] = Array((a,1), (b,4), (c,5), (d,2))
Das ist wonach ich gesucht habe! Danke vielmals! –
Bit nicer: 'stableSort (v, (_._ 2 <_._ 2): ((Zeichen, Int), (Zeichen, Int)) => Boolean)' - hält die Sorgen getrennt, und erlaubt es, über die Logik und die Typen als eigenständige Schritte, zumal die Inline-Typ-Signatur hier nur lästig ist. –