Trier par nom sur java

Fermé
lam89 - 9 avril 2008 à 00:44
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 - 9 avril 2008 à 10:59
Bonjour,
j'ai fait un code qui gère les adhérent qui s'inscrivent dans un club ... dans l'énnoncé il est demandé de créer une méthode qui parmet de trier la liste des adhérents inscrits sur la base de leurs nom le code qué jé fé et le suivant :
public static Adhérent Adhé=new Adhérent();
public static Vector Tadhér=new Vector();
public static void Trier()
	{int k,nc;
	Adhérent Adhr=new Adhérent();
	do{nc=0;
	    for(k=0;k<Tadhér.size();k++)
	    {
		Adhé=(Adhérent)Tadhér.elementAt(k);
		Adhr=(Adhérent)Tadhér.elementAt(k+1);
		  if((Adhé.get_nomAdh()).compareTo(Adhr.get_nomAdh())>0)
		  {
			 Tadhér.setElementAt(Adhé, (k+1));
			 Tadhér.setElementAt(Adhr, k);
			 nc++;
		  }
	    }
	}while(nc!=0);
	System.out.println("La liste des adhérents est maintenent triée !");


mais cette méthode ne marche plus je sais pas pourquoi??!!
aidez moi slv c'est urgent !!!
A voir également:

1 réponse

freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
9 avril 2008 à 10:59
Peut tu nous indiquer pourquoi elle ne fonctionne plus??
Sinon, je pense que tu peut faire plus simple, en déclarant ta classe adhérent comme suit:
public class Adhérent implements Comparable{

puis dans le corps de la classe redéfinir la méthode compareTo
public int compareTo(Object o){
    Adhérent ad=(Adhérent) o;
    return ad.get_nomAdh().compareTo(this.nomAdh); //ou autre, selon comment tu a nommé l'attribut
}

Attention: ceci ne fonctionne que si nomAdh (ou autre, selon comment tu l'a appelé) est un type qui implémente compareTo (/ex String ou int....)
Ensuite dans ton tri, tu peut faire directement:
Adhé.compareTo(Adhr);
0