Permuter deux objets dans une ArrayList [Résolu]

Messages postés
293
Date d'inscription
mardi 2 mai 2006
Dernière intervention
12 octobre 2011
- - Dernière réponse : nethacker
Messages postés
293
Date d'inscription
mardi 2 mai 2006
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.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
2
Merci
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








Merci Utilisateur anonyme 2

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
293
Date d'inscription
mardi 2 mai 2006
Dernière intervention
12 octobre 2011
0
Merci
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.
Commenter la réponse de nethacker
0
Merci
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.



Commenter la réponse de Utilisateur anonyme
Messages postés
293
Date d'inscription
mardi 2 mai 2006
Dernière intervention
12 octobre 2011
0
Merci
Merci vous deux, ça marche nickel =)

Think about it, Code it, Debug it, Enjoy it.
Commenter la réponse de nethacker
-2
Merci
Salut,

ici.

Cordialement,

...\ Dan /...
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.