嗨,我正在编写一个 java 程序来将 2G 文件加载到内存中,数据是以下格式的图形:
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 最新版本进行编译。