我的程序需要向数据容器中插入超过数百万条记录。我尝试了 hashmap和 treemap。尽管我允许JVM 使用 2gb ram,但两者都会给我堆空间异常。
我的程序经常从容器中获取特定数据,我认为如果需要 O(logn) 时间,我可以接受。那么我应该使用什么容器呢?或者我需要实施一个?如何?
更多细节:键是字符串,就像一个全局ID,例如“00011123459”之类的。然后键将映射到列表列表,即List<List<String>>
。我的程序从文件中读取行,然后将行更改为列表,然后从列表中获取全局ID,然后将列表放入相应的列表列表中。该文件有超过数百万行,这就是为什么我认为主要原因是我创建了太多列表。但是,我无法向机器添加更多内存。