Prima di tutto, sei sicuro di aver bisogno dell'intera tabella in memoria? Forse dovresti considerare (se possibile) di selezionare le righe che desideri aggiornare/unire/ecc. Se devi davvero avere l'intera tabella, potresti prendere in considerazione l'utilizzo di un ResultSet scorrevole. Puoi crearlo in questo modo.
// make sure autocommit is off (postgres)
con.setAutoCommit(false);
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, //or ResultSet.TYPE_FORWARD_ONLY
ResultSet.CONCUR_READ_ONLY);
ResultSet srs = stmt.executeQuery("select * from ...");
Ti consente di spostarti su qualsiasi riga desideri utilizzando i metodi "assoluti" e "relativi".