他の人が言っているように、これは詳細を知らずに答えるのはかなり難しいです。コレクションを使用してこのすべてのデータを保持することを検討しているため、単に行ごとに処理することはできないようです。「データの処理」には、テーブル内の他のデータが必要になる可能性があります。
つまり、ある種のファイルでバックアップされたDBが必要です。これを処理するための通常のリレーショナルデータベースにアクセスできない場合は、H2やJavaDB/Derbyなどのインメモリデータベースの使用を検討してください。これらの種類のデータベースは、アプリケーションと同じVMで実行されますが、それに応じて構成すると、永続ストアを使用して大きなテーブルをバックアップできます。
*編集*
これは、H2のようなものを使用して適用できるいくつかのコードです。(例外処理は省略)
Connection connection = DriverManager.getConnection( "jdbc:h2:pruneDB");
Statement stmt = connection.createStatement();
stmt.execute("CREATE TABLE PERSON (USER_ID INT, ITEM_ID INT, BOOK_ID INT )");
stmt.close();
この時点で、データの行を読み取り、それらをDBに挿入するループを作成します。
while( hasMoreRows() ) {
... read the three IDs you need into variables from your file ...
int bookId = someValueFromTheTextRow;
int userId = someOtherValueFromTheTextRow;
int itemId = yetAnotherValueFromTheTextRow;
// After this, just create a PreparedStatement object, bind your IDs to it, and perform an SQL
// insert into the DB table you created above
}
ループから抜けたら、標準SQLを使用して、そのテーブルからアイテムを選択的に削除できます。