如果我添加的项目多于容量中指定的项目,请告诉我HashMap中旧项目的内容是什么? 例如:
HashMap<String, Bitmap> hashmap= new HashMap<String, Bitmap>(5);
我将容量设置为5。 但如果我把10个项目放到这个HashMap中,前5个项目和位图会是什么?
答案 0 :(得分:5)
您只需指定初始容量 - HashMap
将根据需要增长,并在内部复制内容。它仅作为优化提供,因此,如果您知道您需要大容量,则可以从该容量开始,以便不需要复制。
HashMap的一个实例有两个影响其性能的参数:初始容量和负载因子。容量是哈希表中的桶数,初始容量只是创建哈希表时的容量。加载因子是在自动增加容量之前允许哈希表获取的完整程度的度量。当哈希表中的条目数超过加载因子和当前容量的乘积时,哈希表将被重新哈希(即,重建内部数据结构),以便哈希表具有大约两倍的桶数。 / p>
...
如果要在HashMap实例中存储多个映射,那么使用足够大的容量创建映射将允许映射更有效地存储,而不是根据需要执行自动重新散列来扩展表