Permuter deux objets dans une ArrayList

Résolu
nethacker Messages postés 288 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 12 octobre 2011 - 12 mars 2010 à 20:56
nethacker Messages postés 288 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 12 octobre 2011 - 13 mars 2010 à 14:00
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

Utilisateur anonyme
12 mars 2010 à 22:07
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








2
nethacker Messages postés 288 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 12 octobre 2011
12 mars 2010 à 22:55
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.
0
Utilisateur anonyme
13 mars 2010 à 10:26
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.



0
nethacker Messages postés 288 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 12 octobre 2011
13 mars 2010 à 14:00
Merci vous deux, ça marche nickel =)

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
13 mars 2010 à 07:49
Salut,

ici.

Cordialement,

...\ Dan /...
-2
Rejoignez-nous