(aide) Java, trier en ordre alphabetique O->V

asqwzx Messages postés 1 Statut Membre -  
sandul Messages postés 4013 Statut Membre -
Bonjour,

je cherche a savoir comment je peux trier en ordre alphabetique 10 objet (de type string) place a l'interieur d<un vecteur.

pour l'instant, voici mon code :

for(int i=0;i < VectAutos.size()-2;i++){

if( ( (auto)VectAutos.elementAt( i) ).getMarque().charAt( 0) > ( (auto)VectAutos.elementAt( i+1) ).getMarque().charAt( 0) )
{

VectAutos.insertElementAt( VectAutos.elementAt(i+2), i);
VectAutos.removeElementAt( i);

}

else if( ( (auto)VectAutos.elementAt( i) ).getMarque().charAt( 1) > ( (auto)VectAutos.elementAt( i+1) ).getMarque().charAt( 1) && ( (auto)VectAutos.elementAt( i) ).getMarque().charAt( 0) == ( (auto)VectAutos.elementAt( i+1) ).getMarque().charAt( 0) )
{

VectAutos.insertElementAt( VectAutos.elementAt(i+2), i);
VectAutos.removeElementAt( i);

}

}
Configuration: Windows XP
Firefox 2.0.0.8

2 réponses

  1. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Bonjour,

    Pour trier alphabétiquement, généralement ce que je fais c'est que je transforme mes tableaux, tables, etc. en 'Hashtable' qui est un objet tri automatiquement par ordre alphabétique sur la valeur des clés.
    A toi de voir si tu peux passer par là où non, c'est une manière détourner de faire un tri alphabétique sans se casser la tête avec un algorithme :)
    0
  2. sandul Messages postés 4013 Statut Membre 723
     
    Salut,

    Tu peux très bien aussi utiliser
    Collections.sort(v);
    pour trier ton vecteur v si tu ne veux rien modifier dans ton programme (à part le rajout de cette ligne).

    Exemple:
    java.util.Vector<String> v = new java.util.Vector<String>();
    for (int i = 1; i <= 10; i++) {
    	v.addElement(101%i + "");
    }
    System.out.println("v non trié:");
    for (String element : v) {
    	System.out.println(element);
    }
    java.util.Collections.sort(v);
    System.out.println("v trié:");
    for (String element : v) {
    	System.out.println(element);
    }


    Avec la sortie suivante:
    v non trié:
    0
    1
    2
    1
    1
    5
    3
    5
    2
    1
    v trié:
    0
    1
    1
    1
    1
    2
    2
    3
    5
    5

    ++
    0
    1. brunettia
       
      Cool, je connaissais pas, merci :) !
      0
      1. sandul Messages postés 4013 Statut Membre 723 > brunettia
         
        welcome ;-)
        0