ファイル:
3.3mio行のデータを含む検索ログファイルの洗練されたcsvバージョンを使用しています。各行は単一のクエリに似ており、そのクエリに関するさまざまなデータが含まれています。ファイル内のエントリは、セッション/ユーザーIDの昇順で並べ替えられます。
目標:
同じユーザーIDに属しているときに同じクエリ用語を送信したエントリを結合する
アプローチ:
csvファイルを1行ずつ読み取り、データを自作の「エントリ」オブジェクトに保存し、これらのオブジェクトを配列リストに追加しています。これが完了したら、カスタムコンパレータを使用してリストを2つの基準で並べ替えます
問題:
行を読み取り、Entry-objectsをリストに追加している間(非常に時間がかかります)、プログラムはOutOfMemoryException"Javaheap"で終了します。
ですから、私のアプローチはメモリ(およびランタイム)に対して難しすぎるようです。
より良いアプローチのためのアイデアはありますか?