JAVA - Tableaux Aide svp

Fermé
JavaNoob - 6 févr. 2009 à 07:53
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 - 6 févr. 2009 à 14:08
Bonjour,

j'ai deux tableaux venant du fichier suivant:

Benjamin 85
Tremblay 60
Marouane 14
Dubois 65
Legault 95
BenMoon 67
Bali 76

String tabNoms[]={Benjamin, Tremblay, Marouane, Dubois, Legault, BenMoon, Bali};

Int tabNotes[]={85, 60, 14, 65, 95, 67, 76};

je doi afficher la liste des étudiants classée par ordre croissant des notes.

comment faire? sa fai environ 1heure que j'y pense mais je n'y arrive pas T_T

aide svp c'est pour demain
A voir également:

2 réponses

tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
6 févr. 2009 à 10:11
Vous devez utiliser un algorithme de tri, dans lequel: la condition se fait sur le tableau des notes mais les changements de positions se font sur les deux tableaux, par exemple:


int j = 0;

while(j < tabNotes.lenght - 1)
{
           // La condition sur la table tanNotes
            if(tabNotes[j] > tabNotes[j+1])
            {
                     // Les changements pour les deux
                     int intBuffer;
                     intBuffer = tabNotes[j];
                     tabNotes[j] = tabNotes[j + 1];
                     tabNotes[j + 1] = intBuffer;
                     String strBuffer;
                     strBuffer = tabNoms[j];
                     tabNoms[j] = tabNoms[j + 1];
                     tabNoms[j + 1] = strBuffer;
                     j = 0;
              }else
              {
                     ++j;
               }
}


C'est vous ne voulez pas changer les tableaux d'origine, vous devez creer une copie.
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
6 févr. 2009 à 14:08
Bonjour,
Es-tu obligé d'utiliser des tableaux, parce que ce n'est pas super approprié ici.

Une des solutions, c'est d'utiliser une sortedMap où tes clés seraient tes notes, et tes éléments les personnes qui les ont eu. L'inconvénient (et il est énorme), c'est que SortedMap étant une map, les clés doivent être uniques (autrement dit chaque note ne doit être attribuée qu'une seule fois maximum).

Une seconde solution, c'est de créer ta propre classe Resultat contenant deux attributs (et au moins des getters) :
- le nom de la personne ayant reçue la note
- la valeur de la note
Ensuite, il faudra que cette classe implémente l'interface Comparable (pour ordonner plusieurs instances de Resultat en fonction des notes).
Ensuite, tu crées tout simplement une liste de Resultat en parcourant ton fichier initial, puis tu tries cette liste grâce à Collections.sort(taListe).

Cordialement,
0