Hola:
La opción de cucuru es buena si el ResultSet no tiene una cantidad gigante de datos, como para hacer que el array no quepa en memoria.
Un ResultSet si se puede hacer de forma que vaya hacia adelante y hacia atrás. Echa un ojo en
http://www.chuidiang.org/content/res...le-y-updatable
Una tercera opción es hacer los select de acuerdo a lo que pulse el usuario y usando limit en los select. Por ejemplo, select * from tabla limit 100,10 te devuelve 10 resultados a partir del número 100, por lo que se puede hacer fácilmente la paginación leyendo en cada momento sólo los resultados de la página que se van a mostrar.
Se bueno.