こんにちは、2G ファイルをメモリにロードする Java プログラムを作成しています。データは次の形式のグラフです。
node_number: edge_point_1 edge_point_2 ... edge_point_k
隣接リストとしてメモリにインポートしたいのですが、ガベージコレクタの超過エラーが発生します。
ファイルがメモリにロードされていることに気付きましたが、問題はリンクリストの作成中にあります。これが私のコードです:
while ((line = reader.readLine()) != null) {
Integer n1 = line.indexOf(":"), n2;
Integer k = Integer.parseInt(line.substring(0, n1));
n1 = n1 + 2;
lists[k] = new LinkedList<Integer>();
do {
n2 = line.indexOf(" ", n1);
if (n2 == -1)
lists[k].add(Integer.parseInt(line.substring(n1, line.length())));
else
lists[k].add(Integer.parseInt(line.substring(n1, n2)));
n1 = n2 + 1;
} while (n2 != -1);
}
私のコードの何が問題なのか誰にもわかりませんか? Netbeans の最新ビルドでコンパイルしています。