我正在尝试将文本文件中的数据获取到 HashMap 中。文本文件具有以下格式:
它有700万行......(大小:700MB)
所以我要做的是:我阅读每一行,然后我将字段用绿色连接起来,并将它们连接成一个字符串,该字符串将作为 HashMap 键。值将是红色区域。
每次我读到一行时,我都必须检查 HashMap 是否已经有一个带有这样的键的条目,如果是这样,我只需更新值,将值与红色相加;如果不是,则将新条目添加到 HashMap。
我用 70.000 行的文本文件尝试了这个,效果很好。
但是现在有了 700 万行文本文件,我得到了一个“java 堆空间”问题,如图所示:
这是由于 HashMap 吗?是否可以优化我的算法?