Tri en java

Fermé
fred - 27 juil. 2007 à 13:35
 Oscar - 27 juil. 2007 à 16:05
Bonjour,

Voila mon problème , je recupere le resultat d une requete dans un vector((m_listeVoies) ,

et par la suite , j 'affecte dans le champ[24] un score de pertinence .

Je veux pouvoir effectuer un tri sur ce champ mais je n y arrive pas ....
A priori j 'ai du mal coder la fonction Collections.sort(....)( voir la fin de mon message)
.....
j ai du me tromper sur l 'affectation des arguments de la fonction sort.

Avez-vous une idée, merci de votre réponse

Voici le code :


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


/**
* affecte le score de pertinence du résultat pour chaque ligne de vecteur
* m_listeVoies Principe = attribuer 1 note entre 0 et 9 à chaque
* proposition en retour. Score = nb lettre identiques dans l'ordre nb
* caracteres libelle voire soumise * 9
*/

private void triListeVoie() {
// La liste des voies est un vecteur de tableaux de string
String[] tabVoie;

if (m_listeVoies.size() >= 1) {
System.out.println("on trie les voies");

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

int j = 0;
int score = 0;
// Parcours du libellé voie soumis (VERFIER SI C'EST LE BON
// CHAMP
// !!!!!!)
// Pour chaque car du libellé voie, parcours
// du libellé voie de la liste des propositions
// dès qu'on trouve un charactere identique, on ajoute 1 au
// score
for (int i = 0; i < m_libelle.length(); i++) {
boolean Identique = false;
while ((!Identique) & (j < libelleVoie.length())) {
if (m_libelle.charAt(i) == libelleVoie.charAt(j)) {
Identique = true;
score = score + 1;
} else {
j = j + 1;
}
}
}
if (m_libelle != "") {
score = (score / m_libelle.length()) * 9;
}
tabVoie[24] = String.valueOf(score); //Affectation du score de
// pertinence
}
}




// Tri de la liste m_listeVoie sur le score de pertinence
Collections.sort(m_listeVoies, new Comparator() {
public int compare(Objet o1, Objet o2) {
return ((o1[]) - ((String[]) o2[24]));
}
});
}
A voir également:

1 réponse

Bonjour,

Il me semble que collections.sorts s'utilise uniquement avec des ArrayList. A vérifier. Dans ce cas charge un arraylist avec ton vecteur. Cordialemment.
0