Tri dynamique d'une collection

Résolu
Signaler
Messages postés
96
Date d'inscription
jeudi 18 avril 2002
Statut
Membre
Dernière intervention
9 mars 2007
-
Messages postés
34
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
30 juin 2006
-
Bonjour,

J'ai une collection (pour l'instant j'utilise TreeMap mais je ne suis pas obligé de l'utiliser) qui stocke des objets (chaque objet dispose d'un certain nombre de propriétés).
Est-ce qu'il est possible de trier cette collection non pas sur la base de la clé, mais sur la base d'une des propriétés qq des objets, que l'on peut détermininer dynamiquement

Le remplissage de cette collection collection est fait à partir d'une base de données.
L'objetif est d'éviter d'accéder à chaque fois à la base de données pour effectuer des opérations de tri interactives sur l'une des propriétés des objets faisant partie de la collection.

merci pour votre aide

3 réponses

Messages postés
34
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
30 juin 2006

Salut,



Tu peus utiliser new TreeMap(Comparator); puis tu remplis le nouveau Set.



Exemple :



public class objetATrier{

public String champ1;

public int champ2;

public Comparable<Comparable> champ3;

}



public void methode(){

SortedSet<objetATrier>
sortedSet = new TreeSet<objetATrier>(new
Comparator<objetATrier>(){



public int compare(objetATrier o1, objetATrier o2)

{


//return o1.champ1.compareTo(o2.champ1);

//return o1.champ2-o2.champ2;


return o1.champ3.compareTo(o2.champ3);

}});

}



Laurent
Messages postés
96
Date d'inscription
jeudi 18 avril 2002
Statut
Membre
Dernière intervention
9 mars 2007

Bonjour,
J'ai testé cette solution. Elle fonctionne très bien. J'ai +9000 enregistements. J'ai un peu de lenteur.
Merci Laurent
Messages postés
34
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
30 juin 2006

Re,



Pour les lenteur, il existe différent bibliothéque d'algo (à tester).



A+



ps : si tu peus cocher bonne réponse (si c'est le cas).