Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
634 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Tris différent sur une liste

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tris différent sur une liste

n°1349038
Mazda3
Posté le 18-04-2006 à 17:15:34  profilanswer
 

Voilà j'utilise une liste que je tri de 2 maniere différente.
 
 
NB : c'est un tri de chaine de caractere.
 
1ere maniere (avec DisplayTag)
2eme maniere avec Collections.sort (en implémentant la méthode compare).
 
Je trouve pas la même chose !  :sweat:  
 
DisplayTag me sort :
 
14800133
14800141
14800142  
14800143  
14800144  
14800148    
14800151  
14800153  
14800157  
14800158  
14800622  
14802794
14802827  
14810041
148128610550170E0902  
148139314220479  
148147202240114  
148147202796990
148222502383660  
148246810520398  
....
....
....
148449606090166
148449606807113  
148449606809137E0705
148449902090157
148449902095606
1-JW457
1-JW457
1-JW457
1-JW457
1-JW457  
 
 
 
et avec ma méthode toute bête (avec compareTo de string), j'ai l'impression que c'est inversé mais que beaucoup de chose ne colle pas même en inversant la liste.
 
Le resultat avec ma méthode
 
1-JW457  
1-JW457  
1-JW457  
1-JW457  
1-JW457  
14800133  
14800141  
14800142  
14800143  
14800144  
14800148  
14800151  
14800153  
14800157  
14800158  
14800622  
14802794  
14802827  
14810041  
148128610550170E0902  
148139314220479  
148147202240114  
....
....
....
148447202918597  
148447202919165  
148447202919276  
148447202920303  
148447202921315  
148447202922105  
148447202922216  
148447202924730E0805  
148447202947670  
148447206295172  
148448806227192  
148448810369109E0705  
148448810372159E0705  
148449406300690  
148449406305139  
148449406310602  
148449602347178  
148449606090166  
148449606807113  
148449606809137E0705  
148449902090157  
148449902095606  
 
 
 
quel sort de tri me fait DisplayTag ?
 
J'ai regardé dans le code source de DisplayTag, mais je trouve aps le comment du pourquoi ....
 
Voici son code de tri (enfin je crois)
 

Code :
  1. /**
  2.      * Compares two given objects handlig nulls and not comparable objects are handled. Not comparable objects are
  3.      * compared using their string representation.
  4.      * @param object1 first object to compare
  5.      * @param object2 second object to compare
  6.      * @return int result
  7.      */
  8.     private int checkNullsAndCompare(Object object1, Object object2)
  9.     {
  10.         int returnValue = 0;
  11.         if (object1 instanceof Comparable && object2 instanceof Comparable)
  12.         {
  13.             returnValue = ((Comparable) object1).compareTo(object2);
  14.         }
  15.         else if (object1 != null && object2 != null)
  16.         {
  17.             // if object are not null and don't implement comparable, compare using string values
  18.             returnValue = object1.toString().compareTo(object2.toString());
  19.         }
  20.         else if (object1 == null && object2 != null)
  21.         {
  22.             returnValue = 1;
  23.         }
  24.         else if (object1 != null && object2 == null)
  25.         {
  26.             returnValue = -1;
  27.         }
  28.         else
  29.         {
  30.             // both null
  31.             returnValue = 0;
  32.         }
  33.         int ascendingInt = this.ascending ? 1 : -1;
  34.         return ascendingInt * returnValue;
  35.     }


Message édité par Mazda3 le 18-04-2006 à 17:22:19
mood
Publicité
Posté le 18-04-2006 à 17:15:34  profilanswer
 

n°1349046
Mazda3
Posté le 18-04-2006 à 17:26:20  profilanswer
 

En regardant bien les 2 listes, on voit que pour displaytag, un caractere alphabétique est > qu'un caractere alphanumérique, alors qu'avec le CompareTo de la classe String c'est l'inverse ....
 
Mais quel méthode utilise-t-il pour en arriver à cela ?
 
comment implementer cela ?

n°1349074
Mazda3
Posté le 18-04-2006 à 18:06:56  profilanswer
 

Si une ame charitable passe par ici :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Tris différent sur une liste

 

Sujets relatifs
Problème de gestion de liste chainéereprise de données d'une zone de liste multiple ACCESS
Style.display sur une liste dynamiqueContenu d'une liste en fonction d'une autre le tout dynamiquement
[perl]effacer répétitions dans une listeListe vide
liste deroulanteSelectionner valeur dans une liste déroulante
[Résolu[VBA][Access] Remplissage d'1 liste déroulante avec 1 Recordsetliste deroulante
Plus de sujets relatifs à : Tris différent sur une liste


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR