Tri d un vector en java

Fermé
fredo - 30 juil. 2007 à 18:30
 atha - 1 août 2007 à 01:52
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());
}
});


}
}

}
}
A voir également:

3 réponses

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
salut,
que veut tu faire exactement ? Soit plus explicite car ton code est incompréhensible.
0
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