2016-06-15 28 views
-1

在Java中使用Maps有任何缺点(就内存而言)吗?在Java内存利用率方面使用Map的缺点

因为据我所知,如果您使用HashMaps或任何其他集合类。

例如,

Map<String , String> map = new HashMap<String, String>(); 

map.put("id",1); 
map.put("name","test123"); 

所以我用了两个叮咬每一个让我们假设。 而根据我的地图或任何其他收集举行100叮咬,所以剩下98叮咬浪费。 那么,对于这种情况,我可以使用其他任何东西吗?

+0

你是指**字节**吗? – SpringLearner

回答

0

首先,是的,创建映射对于非常少量的数据有一些内存开销。它为给定的负载容量/负载因数创建带有Entry包装类的数组。所以,你可能会浪费几个字节,但在千兆字节大小的内存时代,当你创建数百万甚至数十亿的地图时,这只会成为一个问题,这取决于你实际给你的应用程序提供多少内存,以及其他事情必须管理。

如果我知道一个收集将保持非常小,我不使用密钥,我有时只是使用一个列表,因为检查2或4个元素是相当快的反正。最后,甚至不用担心这些小事情,直到他们占据大部分可用内存。