J'ai besoin de trier un tableau de paires par second élément. Comment passer le comparateur de mes paires à la fonction quickSort? J'utilise l'approche suivante laide maintenant:Comment utiliser scala.util.Sorting.quickSort() avec des types arbitraires?
type AccResult = (AccUnit, Long) // pair
class Comparator(a:AccResult) extends Ordered[AccResult] {
def compare(that:AccResult) = lessCompare(a, that)
def lessCompare(a:AccResult, that:AccResult) = if (a._2 == that._2) 0 else if (a._2 < that._2) -1 else 1
}
scala.util.Sorting.quickSort(data)(d => new Comparator(d))
Pourquoi QuickSort conçu pour avoir une vue ordonnée au lieu d'argument de comparaison habituelle?
Les solutions de Scala 2,7 sont préférées.
L'objet implicite est rompu b/c les paramètres sont x et y et le code gère a et that. –
@Hoodiecrow Argh ... –
Donc, j'ai encore besoin d'implémenter une classe personnalisée et d'utiliser une vue dans 2.7. 2.8 est tellement mieux. Je ne peux pas attendre qu'il soit adopté par les tests Debian. – Basilevs