Tri d un vector en java

Voici mon problème , je n 'arrive pas à trier un vector , voici le code ci-dessous mais qui ne marche pas
tres bien .
L 'idée de mon petit programme est de récupérer chaque élément du vector le stoker dans un tableau, récupérer la valeur [24] de mon tableau pour la stocker dans la variable scrore afin d 'effectuer un tri sur celle ci .
Le résultat de se programme doit me retourner un vector triee par ordre croissant sur le champ[24].
Merci de vos réponses

public class BeanVoie {

private int score=0

/** Vecteur des voies possibles après contrôle. */
private java.util.Vector m_listeVoies = new java.util.Vector();

public Vector getListeVoie() {
triListeVoie();
return m_listeVoies == null ? new Vector() : m_listeVoies;
}

public int getScore() {
return score;
}

public void triListeVoie() {
// La liste des voies est un vecteur de tableaux de string
String[] tabVoie;
if (m_listeVoies.size() >= 1) {

String libelleVoie;
//Parcours des voies
for (int k = 0; k < m_listeVoies.size(); k++) {
tabVoie = (String[]) m_listeVoies.elementAt(k);
srore=tabVoie[24];

// j effectue un tri

Collections.sort(m_listeVoies, new Comparator() {
public int compare(Object arg0, Object arg1) {
return ((BeanVoie) arg0).getScore()
- (((BeanVoie) arg1).getScore());
}
});

}
}

}
}
Configuration: Windows 2000
Internet Explorer 6.0

3 réponses

  1. Bonjour,
    Personne à une idée sur mon problème!!! on doit bien pouvoir faire un tri d 'un vector!!!
    Merci de vos réponses
    1. salut,
      que veut tu faire exactement ? Soit plus explicite car ton code est incompréhensible.
      1. peut- être:
        La classe de test:
        import java.util.*;
        public class Test {
        /** Vecteur des voies possibles après contrôle. */
        private Vector<BeanVoie> m_listeVoies;

        public Vector getListeVoie() {
        /*tu doit faire le test avant de trier
        * sinon tu peut faire un tri sur null
        */
        if(m_listeVoies == null){
        m_listeVoies = new Vector<BeanVoie>();
        }
        triListeVoie();
        return m_listeVoies;
        }
        public void triListeVoie() {
        // La liste des voies est un vecteur de tableaux de string
        Collections.sort(m_listeVoies, new Comparator() {
        public int compare(Object arg0, Object arg1) {
        return ((BeanVoie) arg0).getScore()
        - (((BeanVoie) arg1).getScore());
        }
        });
        }
        }

        la classe de BeanVoie:

        public class BeanVoie {

        private String[] tabVoie = new String[24];//24 est la taille du tableau
        public BeanVoie(){
        /*le constructeur*/
        }

        /*les accesseurs*/
        public int getScore() {
        return Integer.parseInt(tabVoie[24]);
        }
        public String[] getTabVoie(){
        return tabVoie;
        }
        }
        Ton probleme venait de:
        srore=tabVoie[24];
        pas possible car score est un int et tabVoie[24] une String
        donc
        score = Integer.parsInt(tabVoie[24]);
        et de

        Collections.sort(m_listeVoies, new Comparator() {
        public int compare(Object arg0, Object arg1) {
        return ((BeanVoie) arg0).getScore()
        - (((BeanVoie) arg1).getScore());
        }
        car ici tu cast arg0 et arg1 en BeanVoie alors qu'il sont d'après ce que tu veut des String[];
        Remarque:Il me semble qu'il est impossible de mettre desString [] dans un Vecteur(a vérifier).

        Et puis la logique même du programme entier était à revoir. Java est un lagage OBJET il faut donc coder avec des objet...