まず、テーブル全体をメモリに保存する必要がありますか?おそらく、(可能であれば)更新/マージなどする行の選択を検討する必要があります。テーブル全体が本当に必要な場合は、スクロール可能なResultSetの使用を検討できます。このように作成できます。
// 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 ...");
'absolute'および'relative'メソッドを使用して、任意の行に移動できます。