J'ai cette classe:commander une collection par autre façon
public class Paint implements Comparable<Paint>{
private String cod_paint;
private String title_paint;
private String author;
private int year;
public Paint(String cod_paint,String title_paint,String author,int year){
this.cod_paint = cod_paint;
this.title_paint = title_paint;
this.author = author;
this.year = year;
}
/* And follow get method */
}
Maintenant, je voudrais créer une peinture d'objets et de les insérer dans une collection par exemple ArrayList
après que je dois trier cette collection une fois par author
, une autre fois year
et une autre fois pour cod_paint
.
Pour ce faire, je dois mettre en œuvre à l'intérieur de la peinture la méthode compareTo
Par exemple:
public int compareTo(Paint p){
return cod_paint.compareTo(p.cod_paint);
}
de cette manière quand je vais utiliser la méthode sort
sur mon ArrayList<Paint>
ce sera par ordre cod_paint
. Mais maintenant comment puis-je mettre en œuvre l'autre façon de commander (par auteur, par année) dans la même méthode comparer à?
(+1) Belle technique! Les deux composants sont assez communs, mais je ne les ai jamais vus combinés de cette façon. – NPE
mais je dois ajouter à ma class aussi Comparable? –
Mazzy
@Mazzy non, uniquement si vous n'utilisez pas de comparateur personnalisé. –