IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Faire un triecoissant avec java sans utiliser Collections.sort


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Niger

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Faire un triecoissant avec java sans utiliser Collections.sort
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private void classementCroissante(){
            for(int j=0; j== UserName.size();j++) {
     
     
                for (int i=j+1; i== ScoreUser.size();i++) {
                    if (ScoreUser.get(j).compareTo(ScoreUser.get(i))<0) {
                        score =  ScoreUser.get(j);                       user= UserName.get(j);
     
                        ScoreUser.set(j, ScoreUser.get(i));     UserName.set(j,UserName.get(i));
                        ScoreUser.set(i, score);                        UserName.set(i, user);
                    }
     
                }
            }
    Quand je fait appel à cette fonction, le programme tourne mais rien ne change alors que ne utiisant collections.sort le trie marche bien

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    Hello,

    je te suggère de revoir l'usage de == dans tes boucles.

    Dans une boucle, on fait des comparaisons d'inégalité, pas des comparaisons d'égalité. Regarde à nouveau toutes les boucles que tu as faites jusqu'à présent. Elles ne ressemblent pas à ça.

    (Au passage, si la raison pour laquelle tu n'utilises pas simplement sort() et que tu as décidé d'écrire le tri toi-même, c'est que tu as deux listes à trier, d'une part les scores et d'autre part les noms des joueurs... La bonne chose à faire était de faire une classe Player qui contient le score et le nom du joueur, et de n'avoir qu'une seule liste, une liste qui contient les Player. Il n'y a plus qu'à la trier par score.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Niger

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut TrieCrissant pour afficher du score por un jeu des question
    Merci cher Mr telvin pour votre reponse,
    J'ai réussit a faire mon tri sans utilisé collections.sort, voilà:
    J'ai créé u e class score, un getter et un setter permettant de chargé les données.
    Ensuite j'ai reprit ma fonction classement en respectant les obligations comme tu les a notifié ==
    L'objectif est que en même temps quand je permute les score je permute aussi les nom enfin de garder à chacun des nom sin score.
    Bien sa marche. Et j'ai implémenté la méthode comparable. Merci bien


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private void classementCroissante(){
            for(int j=0; j<ScoreUser.size();j++) {
     
     
                for (int i=j+1; i<ScoreUser.size();i++) {
                    if (ScoreUser.get(j).compareTo(ScoreUser.get(i))<0) {
                        score =  ScoreUser.get(j);                       user= UserName.get(j);
     
                        ScoreUser.set(j, ScoreUser.get(i));     UserName.set(j,UserName.get(i));
                        ScoreUser.set(i, score);                        UserName.set(i, user);
                    }
     
                }
            }

    Mais j'aurais aimer que vous le montrez votre solution , là ou il faut créé une classe player et trié par score.
    Merci

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    Citation Envoyé par IBKAM Voir le message
    L'objectif est que en même temps quand je permute les score je permute aussi les nom enfin de garder à chacun des nom sin score.
    Oui, et je t'ai dit que le plus simple pour faire ça c'est d'avoir une seule liste au lieu d'en avoir deux.

    Mais bon, tu as tout le temps de progresser.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/05/2009, 11h24
  2. Faire un SUM avec conditions sans tables temporaires
    Par jonklay dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 03/01/2007, 09h39
  3. Faire une bd avec java et MySQL.
    Par argon dans le forum Outils
    Réponses: 4
    Dernier message: 04/12/2006, 20h05
  4. Réponses: 3
    Dernier message: 31/08/2006, 10h39
  5. Réponses: 2
    Dernier message: 10/07/2006, 18h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo