Permuter deux objets dans une ArrayList [Résolu]

Signaler
Messages postés
288
Date d'inscription
mardi 2 mai 2006
Statut
Membre
Dernière intervention
12 octobre 2011
-
Messages postés
288
Date d'inscription
mardi 2 mai 2006
Statut
Membre
Dernière intervention
12 octobre 2011
-
Bonjour tout le monde,
J'ai créé une classe Ville, et un tableau (objet) avec la classe ArrayList, j'ajoute des villes avec la méthode add de ArrayList, je veux les trier dans ce tableau suivant l'attribut "nbr_habitants" par exemple,

j'ai donc procédé au tri par bulle, mais là au moment de permuter les deux objets, je perds les pédales, voila mon code. liste étant déclaré un peu avant c'est un objet de la classe ArrayList.
boolean permute = true;
                    while(permute)
                    {
                        permute = false;
                        for(i = 0;i < liste.size()-1;i++)
                        {
                        Ville v1 = liste.get(i);
                        Ville v2 = liste.get(i+1);
                        Ville aide;
                        if(v1.getNbre_habitants() > v2.getNbre_habitants())
                            {
                            aide = v1;
                            v1 = v2;
                            v2 = aide;
                            permute = true;
                            }
                        }
                    } 
                    


Remarquez que dans la permutation j'ai utilisé l'opérateur "=" pour faire mes affectations, mais en réalité je détruisais les objets initiaux et ça pointait vers d'autres au lieu de copier le contenu.

Quelqu'un a une idée là dessus ?
Merci d'avance,

Think about it, Code it, Debug it, Enjoy it.

5 réponses


Bonsoir

Utilise plutôt le quick sort de Java en passant ta propre implémentation de Comparator, c'est beaucoup plus facile. Tu te compliques la vie pour rien. Regarde donc dans les classes Collections (la méthode "sort") et Comparator. Bon courage








Messages postés
288
Date d'inscription
mardi 2 mai 2006
Statut
Membre
Dernière intervention
12 octobre 2011

Oui, même la classe Arrays a une méthode sort(), mais pour le Comparator, j'arrive pas à le comprendre, t'aurais pas un exemple ?
Merci beaucoup =)

Think about it, Code it, Debug it, Enjoy it.

L'exemple de danimo utilise l'interface Comparable à la place, tu dois l'implémenter dans la classes des objets que tu mets dans ta collection.



Messages postés
288
Date d'inscription
mardi 2 mai 2006
Statut
Membre
Dernière intervention
12 octobre 2011

Merci vous deux, ça marche nickel =)

Think about it, Code it, Debug it, Enjoy it.

Salut,

ici.

Cordialement,

...\ Dan /...