Java - problema con arraylist

   
Vista:

problema con arraylist

Publicado por rasof (35 intervenciones) el 15/01/2010 10:16:42
hola buenas tengo un problema con arraylist, quiero cargar un arraylist a partir de un resultset con objetos de tipo HorariosVO que consigo desde la bbdd. lo hago de la siguiente manera: (esto esta dentro de un metodo que devuelve un arraylist)

ArrayList listaHorarios = new ArrayList();
HorariosVO hvo = new HorariosVO();
while (rs.next()) {
hvo.setId_horario(rs.getInt(1));
hvo.setJuego_horario(juego);
hvo.setRegularidad(regu);
hvo.setHora_salida(rs.getString(4));
hvo.setCaliente_horario(rs.getInt(5));
hvo.setId_ruta(rs.getInt(6));
listaHorarios.add(hvo);
}
return (listaHorarios);

y asi es como quiero recorrer el arraylist para luego imprimirlo por pantalla por ejemplo:

try {
listaHorarios = hdao.getHorariosParaMatriz();
} catch (Exception ex) {
System.out.println("Error al recoger horarios en ArrayList");
}
Iterator i = listaHorarios.iterator();
HorariosVO hvo = new HorariosVO();
int kont=0;
while (i.hasNext()) {
kont++;
hvo= (HorariosVO) i.next();
System.out.println(kont+": "+hvo.getHora_salida());
}

y el problema es que se que hay 10 objetos en el arraylist y con el codigo que tengo me imprime 10 veces el ultimo objeto.

seguro que es un tonteria el fallo que tengo q tengo, pero tanto tiempo delante de elllo no lo encuentro.

un slaudo y graicas de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema con arraylist

Publicado por James (207 intervenciones) el 15/01/2010 18:55:52
A simple vista puedo ver que se trata de un error de concepcion de tu parte pues si te fijas no creas un nuevo objeto de HorariosVO para cada elemento si no que lo reasignas por cada uno al agregarlo al ArrayList lo agregas almismo 10 veces y como java trabaja solo por referencia , entonces lo que te sucede es correcto, el error esta en esta linea

HorariosVO hvo = new HorariosVO();

debes ponerla dentro del while que recorre el ResultSet, con eso deberia solucionarse, Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar