Permuter deux objets dans une ArrayList [Résolu]

nethacker 293 Messages postés mardi 2 mai 2006Date d'inscription 12 octobre 2011 Dernière intervention - 12 mars 2010 à 20:56 - Dernière réponse : nethacker 293 Messages postés mardi 2 mai 2006Date d'inscription 12 octobre 2011 Dernière intervention
- 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
Utilisateur anonyme - 12 mars 2010 à 22:07
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
nethacker 293 Messages postés mardi 2 mai 2006Date d'inscription 12 octobre 2011 Dernière intervention - 12 mars 2010 à 22:55
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
Utilisateur anonyme - 13 mars 2010 à 10:26
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
nethacker 293 Messages postés mardi 2 mai 2006Date d'inscription 12 octobre 2011 Dernière intervention - 13 mars 2010 à 14:00
0
Merci
Merci vous deux, ça marche nickel =)

Think about it, Code it, Debug it, Enjoy it.
Commenter la réponse de nethacker
Utilisateur anonyme - 13 mars 2010 à 07:49
-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.