Tri d un vector en java

fredo -  
 atha -
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. fredo
     
    Bonjour,
    Personne à une idée sur mon problème!!! on doit bien pouvoir faire un tri d 'un vector!!!
    Merci de vos réponses
    0
  2. atha
     
    salut,
    que veut tu faire exactement ? Soit plus explicite car ton code est incompréhensible.
    0
  3. atha
     
    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...
    0