J'ai implementé un comparator pour faire le tri en fonction de 3 criteres (nom, dateDebut et dateFin).
J'ai appelé la méthode Collections.sort(List, new ObjetVoComparator())
Apres, J'ai affiché la liste trié et les elements ne le sont pas.
Voici le code du comparator :
LOG Affichée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 @Override public int compare(AffretementVO pO1, AffretementVO pO2) { String sousTraitant1 = pO1.getSousTraitant(); String sousTraitant2 = pO2.getSousTraitant(); Date dateDebut1 = pO1.getDebutPeriode(); Date dateDebut2 = pO2.getDebutPeriode(); Date dateFin1 = pO1.getFinPeriode(); Date dateFin2 = pO2.getFinPeriode(); if(!sousTraitant1.equals(sousTraitant2)) { return 0; } else { if(!dateDebut1.equals(dateDebut2)) { return 0; } else { if(!dateFin1.equals(dateFin2)) { return 0; } else { return 1; } } } }
TRP88170-0002 - 2011-12-05 - 2011-12-11
TRP88170-0002 - 2011-11-28 - 2011-12-04
TRP88170-0002 - 2011-10-10 - 2011-10-20
TRP88170-0002 - 2011-12-05 - 2011-12-11
TRP88170-0002 - 2011-11-28 - 2011-12-04
TRP88170-0002 - 2011-11-28 - 2011-12-04
TRP88170-0002 - 2011-11-28 - 2011-12-04
Le tri sur le premier critere nom se fait correctement mais les dates non, le résultat attendu est le suivant :
TRP88170-0002 - 2011-10-10 - 2011-10-20
TRP88170-0002 - 2011-11-28 - 2011-12-04
TRP88170-0002 - 2011-11-28 - 2011-12-04
TRP88170-0002 - 2011-11-28 - 2011-12-04
TRP88170-0002 - 2011-11-28 - 2011-12-04
TRP88170-0002 - 2011-12-05 - 2011-12-11
TRP88170-0002 - 2011-12-05 - 2011-12-11
Partager