Si se trata de un Array
, probablemente es típico usar en el lugar algoritmos de ordenación. Sin embargo, en el código de Scala idiomático, las colecciones mutables generalmente no se fomentan/utilizan. Si ese es el caso y usted tiene la colección inmutables de la mañana (o quisiera no modificar el Array
en su lugar), utilice 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)
clasificar un Array
o cualquier otra colección de tuplas:
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))
Eso es lo que estaba buscando! ¡Muchas gracias! –
Bit nice: 'stableSort (v, (_._ 2 <_._ 2): ((Char, Int), (Char, Int)) => Boolean)' - mantiene las preocupaciones por separado, y permite razonar sobre el la lógica y los tipos como pasos independientes, especialmente porque la firma de tipo en línea es solo una molestia aquí. –