Tri par ordre alphabétique

Signaler
Messages postés
7
Date d'inscription
jeudi 6 janvier 2005
Statut
Membre
Dernière intervention
17 décembre 2005
-
Messages postés
184
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009
-
a partir d'une classe Etudiant : (nom,prenom , adresse)
j'ai construit des objets Etudiant : E1,E2,E3...
ces etudiants sont stokcés dans un vecteur.
comment peut on afficher ces étudiants triés par nom?

Ce qui est à la portée d'un homme ,est à la portée d' un autre ;-)
A voir également:

8 réponses

Messages postés
333
Date d'inscription
dimanche 25 mai 2003
Statut
Membre
Dernière intervention
23 novembre 2009
1
C'est assez facile à faire :

Implémente l'interface Comparable dans ta classe Etudiant avec la méthode compareTo



par exemple si il y a un champ String nom dans ta classe Etudiant :

public int compareTo(Object E) {


return nom.compareTo( ( (Etudiant) E ).nom );//String implémente déjà Comparable


}




ou un truc dans le genre,



ensuite, pour trier le Vector :

Collections.sort(vect);


Cette méthode ne retourne pas de valeur, mais modifie le Vector. (Sinon, cloner le Vector avant et trier le clone)



Voilà



A+
Dobel
[Une fois rien, c'est rien; deux fois
rien, ce n'est pas beaucoup, mais pour trois fois rien, on peut déjà
s'acheter quelque chose, et pour pas cher]
Messages postés
184
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

Euh jai mis un Truc pour bien trié les String propre...

ici : http://lopez.thomas1.free.fr/Java/String.html



ca donne un truc comme ca:




public class Tri_String {


public static void main(String[] args) {


String[] test;


test = args;// pour test on tri un tab passer en parametre


tri(test);


try {


//affichage


System.out.println("Une fois trie :");


for (int i = 0; i < test.length; i++) {


System.out.println(test[i]);


}


} catch (Exception e) {


// TODO: handle exception


System.out.println("Exception d'affichage:" + e.toString());


}


}
/**

*

*/

private static String[] tri(String[] test) {

// TODO Auto-generated method stub

int i = 0;

int t;

String temp;

System.out.println(test.length);

try {

for (i = 0; i < (test.length - 1); i++) {

t = test[i].compareTo(test[i + 1]);

System.out.println("i=" + i);

System.out.println("test" + t);

if (t == 0) {

// égalité

}

if (t < 0) {

// ordre decroissant

} else {

// ordre croissant

System.out.println("Tri exécuter");

temp = test[i];

test[i] = test[i + 1];

test[i + 1] = temp;

tri(test);

}

}

} catch (Exception e) {

// TODO: handle exception

System.out.println("Exception de tri:" + e.toString());

}

return test;

}

}




vive java!!



Syruis
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
En beaucoupe plus simple t'aurais du utiliser les collections
"Hashtable". La différence entre Vector et Hashtable c'est que pour
chaque objet de la collection Hashtable tu dois associer une clé qui
permet de l'identifier et qui permet d'ordonner les objets selon les
clés.

Si tu utilise comme clé le nom des étudiants lorsque tu voudras les afficher ils seront triés par leur nom.

C'est le principal atout de ce genre de collection, je m'en suis déjà servi et c'est très pratique.....

Tu vois ce que je veux dire?

tiens moi au courant si du résultat.



@+
Messages postés
184
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

Jattend le hastable :p
www.crisenouilleenforce.fr.vu
le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....

Syruis :)
Messages postés
54
Date d'inscription
lundi 29 septembre 2003
Statut
Membre
Dernière intervention
4 décembre 2005

Bonjour à tous,

Voila j'ai des JList qui lorsque l'on double clique dessus font
passer la chaîne séléctionnée dans l'autre liste. Pour cela j'utilise
des Vector [new JList(monVector) ]. L'affichage doit être par ordre
alphabétique donc j'utilise [Collections.sort(monVector)] avant de
réafficher la JList, tout marche bien sauf pour les chaînes comportant
des lettres accentuées (elles sont placées en fin de liste). Je voulais
savoir s'il n'y avait pas moyen de faire quelque chose de simple
plutoôt que de me tapper un overwrite d'une classe.

Merci.
Messages postés
184
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

ouais ya moyen....

Syruis :)

http://forum.musique.free.fr

le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....
Messages postés
54
Date d'inscription
lundi 29 septembre 2003
Statut
Membre
Dernière intervention
4 décembre 2005

Oui il y a moyen...

Une direction de recherche serait la bien venue.

----
OS: Ubuntu 5.10(linux)
jdk : 1.5.0
MysqlConnector/J: 3.2
mysql Ver 12.22 Distrib 4.0.24, for pc-linux-gnu (i486)
----
Messages postés
184
Date d'inscription
mardi 8 juin 2004
Statut
Membre
Dernière intervention
28 avril 2009

Par exemple.



c'est le principe du dev :)

Syruis :)

http://forum.musique.free.fr

le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....