Problema linkedlist

Jonal
06 de Julio del 2005
Muy buenas.

Trabajo con una linkedlist a la qual inserto diferentes elementos del mismo tipo. Parece que las inserciones se realizan correctamente, (cada vez que añado un elemento lo muestro y cada vez es diferente) pero al mostrar todos los elementos por consola después de añadir-los solo se muestra el último insertado en cada iteración.

Muestro los elementos mediante un bucle for:

<<for (int i = 0; i<vols.size(); i++){
v = (vol) vols.get(i);
System.out.println(v.get_desti());}>>

Qué hago mal? Gràcias por la ayuda.

chuidiang
06 de Julio del 2005
Hola:

Aunque dicen que en java no hay punteros, en realidad son todo punteros. Si añades los elementos de esta forma

Elemento e = new Elemento();
e.rellenaDatos();
vols.add (e);
e.rellenaDatos()
vols.add(e);
...

en realidad estás añadiendo siempre el mismo elemento (solo has hecho un new). En la lista tienes el mismo elemento muchas veces.

Para que te funcione correctamente, debes hacer un new por cada elemento.

Elemento e = new Elemento();
e.rellenaDatos();
vols.add (e);
e=new Elemento();
e.rellenaDatos()
vols.add(e);
...


Se bueno.

Jonal
06 de Julio del 2005
Si no te he entendido mal diria que esto ya lo hago.
Te copio el código.

<<while ((line = dis.readLine()) != null) {
st = new StringTokenizer(line, ";");
v = new vol(st.nextToken(),st.nextToken(),st.nextToken(),
Integer.parseInt(st.nextToken()),Double.parseDouble(st.nextToken()));
vols.add(v);}>>

chuidiang
06 de Julio del 2005
Hola de nuevo:

Parece todo correcto. ¿Cómo es la clase vol?

Se bueno.