Trier par nom sur java

lam89 -  
freto Messages postés 1543 Date d'inscription   Statut Membre Dernière intervention   -
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 1543 Date d'inscription   Statut Membre Dernière intervention   162
 
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