1
Comment puis-je trier un vecteur de mes objets dans Scala? Y a-t-il des routines de tri de bibliothèque ou dois-je écrire le mien?Trier Vecteur d'objets dans Scala
J'ai une classe:
class Data2D(var x:Int, var y:Int)
et je passe un vecteur de ces derniers à ma fonction:
private def foo(data: Vector[Data2D]): Int = {
data:Vector sortedOnX = // ??
}
comment puis-je trier le vecteur, sur la base des valeurs x du Objets Data2D?
En java, je le veux
Collections.sort(data, XComparator.INSTANCE);
où XComparator est:
enum XComparator implements Comparator<Data2D> {
INSTANCE;
@Override
public int compare(Data2D o1, Data2D o2) {
if (o1.getX() <= o2.getX()) {
return -1;
} else {
return 1;
}
}
}
Merci beaucoup. Je n'aurais jamais deviné de fournir l'argument "_.x" - comme mon auto-complétion d'éclipse indique que "sortBy()" ne prend aucun paramètre. – drozzy
@drozzy Bizarre. Scaladoc est votre ami: http://www.scala-lang.org/api/current/index.html –
Ouais, je trouve aussi le scaladoc cryptique :) C'est juste beaucoup de parenthèses et de crochets, je suis comme o_o http://www.scala-lang.org/api/current/scala/collection/immutable/Vector.html – drozzy