Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > aumentar longitud de object[] en ejecución

Buenas noches, me gustaría saber si hay forma de aumentar durante la ejecución el tamaño de un object[] o por el contrario, saber de alguna manera la cantidad de filas obtenidas en un resulset al consultar una bbdd.
Gracias de antemano.

noviembre 10, 2013 | Registered CommenterElena

Para saber las filas de un objeto ResultSet tienes el método getRow():

- Documentación oficial: Interface ResultSet, int getRow()

Sobre el array, su tamaño no se puede cambiar en tiempo de ejecución. Si necesitas hacerlo puedes usar el api de Collections. Tienes objetos para trabajar con listas, mapas, colas...

- Documentación oficial: http://docs.oracle.com/javase/tutorial/collections/

- Artículo en castellano: Colecciones en Java http://mundogeek.net/archivos/2009/03/16/colecciones-en-java/

noviembre 10, 2013 | Registered CommenterUnai Valle

Sobre el Object[] no se puede hacer directamente es decir java no dispone de un metodo directo que te permita cambiar el tamaño de un array, desde mi punto de vista tienes dos opciones:
-Hacer una "chapuzilla/apaño" y volcar el contenido de tu array en un array nuevo con el tamaño nuevo que quieres
-Trabajar con collection como bien a dicho Unai Valle. Personalmente usaria esta opcion.

Sobre el resultset para saber el numero de filas que tiene debes recorrerlo utilizando algun bucle:

int countRows;
Resultset rs;
while (rs.next()){
countRows ++;
}

noviembre 12, 2013 | Registered Commentercristian

Buenas,

Hacer una "chapuzilla/apaño" y volcar el contenido de tu array en un array nuevo con el tamaño nuevo que quieres

No entiendo que tiene eso de chapucilla. Ese es el mecanismo utilizado desde siempre para redimensionar un array. En java es tan sencillo como crear un nuevo array y hacer la copia con Arrays.copyOf()
Las Collections no hacen magia. De hecho si consultas la implementacion de ArrayList, veras que mantiene internamente un array y cuando alcanza el tamano maximo prefijado (por defecto es de 10), realiza una copia del contenido de este en otro mas grande (metodo privado grow).

Un saludo

noviembre 13, 2013 | Unregistered CommenterUnoPorAhi

Unicamente hacia referencia que al poder trabajar con Collections no es necesario hacer esto manualmente, ya que si va a redimensionar el array varias veces es mucho mas sencillo trabajar directamente con Collections y no andar haciendo copias del array, simplemente es mas sencillo.

noviembre 14, 2013 | Registered Commentercristian

Muchas gracias a todos por las respuestas. Al final hice lo que dijo el compañero Cristian y he coque creé un object al ñ sobre el que almacenar todos los datos del otro más el nuevo.
Gracias de nuevo

noviembre 16, 2013 | Registered CommenterElena