Tri par ordre alphabétique

cs_mj001 Messages postés 7 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 17 décembre 2005 - 16 janv. 2005 à 11:57
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009 - 13 nov. 2005 à 20:14
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 ;-)

8 réponses

cs_Dobel Messages postés 333 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 23 novembre 2009 1
16 janv. 2005 à 16:13
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]
0
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
1 févr. 2005 à 14:30
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
0
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
14 févr. 2005 à 12:41
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.



@+
0
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
14 févr. 2005 à 23:11
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 :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bastet1978 Messages postés 54 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 4 décembre 2005
8 nov. 2005 à 14:12
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.
0
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
8 nov. 2005 à 16:14
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 ....
0
bastet1978 Messages postés 54 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 4 décembre 2005
9 nov. 2005 à 00:20
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)
----
0
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
13 nov. 2005 à 20:14
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 ....
0