Bonsoir
En vérifiant mon algo ce soir je me suis rendu compte que dans mon test j avais écrit :
if( pListe.get(i).getNom().compareTo( pListe.get(j).getNom()) > 0 )
a la place de :
if( pListe.get(min).getNom().compareTo( pListe.get(j).getNom()) > 0 )
Donc voici un petit test effectué :
Classe Personnes
import java.util.ArrayList;
public class Personnes
{
String Nom;
Integer Age;
public Personnes(String pNom, Integer pAge)
{
Nom = pNom;
Age = pAge;
}
public Integer getAge()
{
return Age;
}
public void setAge(Integer age)
{
Age = age;
}
public String getNom()
{
return Nom;
}
public void setNom(String nom)
{
Nom = nom;
}
public String Affichage()
{
return "Nom :\t" + Nom + "\r\nAge :\t" + String.valueOf(Age) + "\r\n";
}
public static ArrayList<Personnes> TriAlphabetique(ArrayList<Personnes> pListe)
{
Integer i, j, min;
Personnes temp;
for(i = 0; i < pListe.size(); i++)
{
min = i;
for(j = i; j < pListe.size(); j++)
{
if(pListe.get(min).getNom().compareTo(pListe.get(j).getNom()) > 0)
{
min = j;
}
}
temp = pListe.get(i);
pListe.set(i, pListe.get(min));
pListe.set(min, temp);
}
return pListe;
}
}
Programme de test :
import java.util.ArrayList;
import java.util.Iterator;
public class test_triAlphabetique
{
public static void main(String[] args)
{
ArrayList<Personnes> listePersonnes = new ArrayList<Personnes>();
listePersonnes.add(new Personnes("prof2011", 25));
listePersonnes.add(new Personnes("alt157", 21));
listePersonnes.add(new Personnes("bisounours", 21));
listePersonnes.add(new Personnes("douffi", 21));
listePersonnes.add(new Personnes("cowboy", 21));
listePersonnes.add(new Personnes("polo", 23));
Iterator<Personnes> iter = listePersonnes.iterator();
while(iter.hasNext())
{
Personnes tmp = iter.next();
System.out.println(tmp.Affichage());
}
System.out.println("\r\n__________________________\r\n");
Personnes.TriAlphabetique(listePersonnes);
iter = listePersonnes.iterator();
while(iter.hasNext())
{
Personnes tmp = iter.next();
System.out.println(tmp.Affichage());
}
}
}
Cela nous renvoie bien une liste triée par ordre alphabétique :)
Bonne soirée