如果放入hashmap而不是容量将会是什么

时间:2014-04-12 10:29:39

标签: java android arraylist hashmap capacity

如果我添加的项目多于容量中指定的项目,请告诉我HashMap中旧项目的内容是什么? 例如:

HashMap<String, Bitmap> hashmap= new HashMap<String, Bitmap>(5);

我将容量设置为5。 但如果我把10个项目放到这个HashMap中,前5个项目和位图会是什么?

1 个答案:

答案 0 :(得分:5)

您只需指定初始容量 - HashMap将根据需要增长,并在内部复制内容。它仅作为优化提供,因此,如果您知道您需要大容量,则可以从该容量开始,以便不需要复制。

来自documentation

  

HashMap的一个实例有两个影响其性能的参数:初始容量和负载因子。容量是哈希表中的桶数,初始容量只是创建哈希表时的容量。加载因子是在自动增加容量之前允许哈希表获取的完整程度的度量。当哈希表中的条目数超过加载因子和当前容量的乘积时,哈希表将被重新哈希(即,重建内部数据结构),以便哈希表具有大约两倍的桶数。 / p>      

...

     

如果要在HashMap实例中存储多个映射,那么使用足够大的容量创建映射将允许映射更有效地存储,而不是根据需要执行自动重新散列来扩展表