Probleme d'iterator - LinkedList
Bonjour,
Je code pour le moment une stucture objet de maillage "dynamique".
Ainsi voila les les elements de base :
Code:
1 2 3 4 5 6 7 8
|
public class vertex {
private Point3f X; //coordonnées
private int id; //identifiant/numéro
private LinkedList<edge> edges; //liste de references vers les arretes
...
} |
Code:
1 2 3 4 5 6 7 8
|
public class edge {
private int id; //identifiant/numero
private vertex[] vertices; //tableau de 2 vertex
private face[] faces; //tableau de 2 faces
...
} |
Code:
1 2 3 4 5 6
|
public class face {
private int id;
private edge[] edges;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
public class maillage {
/** Boite englobante */
private float Xmin;
private float Xmax;
private float Ymin;
private float Ymax;
private float Zmin;
private float Zmax;
/** elements composant le maillage */
private LinkedList<face> faces;
private LinkedList<edge> edges;
private LinkedList<vertex> vertices;
...
} |
Voila en gros.
Pour tester mes méthodes, j'ai fait un main() :
Code:
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
|
public static void main(String[] args) {
System.out.println("Program started");
maillage m = new maillage();
m.build(); //consturction du maillage de test
ListIterator it = m.getVertices().listIterator();
vertex test = new vertex((float)0.0, (float)0.0, (float)0.0);
while(it.hasNext())
{
vertex tt = (vertex)it;
float[] data = tt.getCoord();
System.out.println("Test X:"+data[0]+" "+data[1]+" "+data[2]+"");
if(it.equals(test))
{
System.out.println(" Trouvé");
}
it.next();
System.out.println(" next");
}
System.out.println("Program terminated");
} |
Seulement voila, je ne connais rien aux itérateurs, et donc le probleme vien du fait que je en sais pas comment récuperer la reference de mon objet dans ma liste, car l'itérateur la parcours mais n'a pas de méthode pour récuperer le contenu de l'element courant...
Ainsi :
Code:
1 2 3 4 5 6
|
Program started
Exception in thread "main" java.lang.ClassCastException: java.util.LinkedList$ListItr
at maillage_main.main(maillage_main.java:20)
(la ligne 20 étant "vertex tt = (vertex)it;" ) |
j'ai regardé la FAQ mais je n'ai rien trouvé de concluant...
Merci de m'aider....