我还能用什么来代替HashMap?

0 java hashmap

在我的项目中,我从两个服务器获取一个表单的条目,并将它们保存在一个hashmap中.

key是serverName,值是2d ArrayList(ArrayList<ArrayList<Object>>)

在ArrayList中,我保留属于该服务器上的表单的字段的值.我在两个服务器中比较这些值并将它们打印到excel文件.

我的问题是,当我得到一个包含12000个条目和100个字段的表单时,此映射使用大约400M的内存.我不希望我的程序使用这么多内存.你能告诉我什么吗?

mdm*_*dma 5

我怀疑它是导致问题的hashmap,但是ArrayList,因为它默认为10个条目分配空间.如果您只为每个索引存储一个或两个值,那么这将是浪费.

您可以尝试将初始大小设置为1或2以查看是否有帮助.潜在的缺点是,如果尺寸太小,将导致频繁的重新分配.但是你会发现自己是否会导致任何明显的放缓.