JAVA - Tableaux Aide svp
JavaNoob
-
Marco la baraque Messages postés 1030 Statut Contributeur -
Marco la baraque Messages postés 1030 Statut Contributeur -
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
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:
- JAVA - Tableaux Aide svp
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
2 réponses
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:
C'est vous ne voulez pas changer les tableaux d'origine, vous devez creer une copie.
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.
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,
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,