1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| public static void trierFormes2(Liste liste){
//Travailler avec un clone de la liste pour ne pas interferer avec l'affichage
Liste listeClone = new Liste();
listeClone = liste.clone();
//Liste triée
Liste listeTriee = new Liste();
listeTriee.dernier();
//Recherche des carrés
listeClone.premier();
for(int i=0; i<listeClone.getTaille(); i++){
AbstractForme forme = (AbstractForme) listeClone.getElement();
if(forme.toString().equals(Carre.NOM)){
listeTriee.insererFin(forme);
}
listeClone.suivant();
}
//Recherche des rectangles
listeClone.premier();
for(int i=0; i<listeClone.getTaille(); i++){
AbstractForme forme = (AbstractForme) listeClone.getElement();
if(forme.toString().equals(Rectangle.NOM)){
listeTriee.insererFin(forme);
}
listeClone.suivant();
}
//Recherche des cercles
listeClone.premier();
for(int i=0; i<listeClone.getTaille(); i++){
AbstractForme forme = (AbstractForme) listeClone.getElement();
if(forme.toString().equals(Cercle.NOM)){
listeTriee.insererFin(forme);
}
listeClone.suivant();
}
//Recherche des ovales
listeClone.premier();
for(int i=0; i<listeClone.getTaille(); i++){
AbstractForme forme = (AbstractForme) listeClone.getElement();
if(forme.toString().equals(Ovale.NOM)){
listeTriee.insererFin(forme);
}
listeClone.suivant();
}
//Recherche des lignes
listeClone.premier();
for(int i=0; i<listeClone.getTaille(); i++){
AbstractForme forme = (AbstractForme) listeClone.getElement();
if(forme.toString().equals(DemiDroite.NOM)){
listeTriee.insererFin(forme);
}
listeClone.suivant();
}
liste = listeTriee.clone();
} |
Partager