Foro sobre Java EE > aumentar longitud de object[] en ejecución
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/
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 ++;
}
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
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.
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
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.