请告诉我,如果我放置的项目比容量中指定的多,HashMap 中的旧项目会怎样?例如:
HashMap<String, Bitmap> hashmap= new HashMap<String, Bitmap>(5);
我将容量设置为 5。但是如果我将 10 个项目放入此 HashMap,前 5 个项目和位图会怎样?
您只是指定了一个初始容量 -HashMap
无论如何都会根据需要增长,在内部复制内容。它仅作为优化提供,因此如果您知道需要大容量,则可以从该容量开始,这样就不需要复制。
从文档中:
HashMap 的实例有两个影响其性能的参数:初始容量和负载因子。容量是哈希表中的桶数,初始容量只是哈希表创建时的容量。负载因子是哈希表在其容量自动增加之前允许达到的程度的度量。当哈希表中的条目数超过负载因子和当前容量的乘积时,对哈希表进行重新哈希(即重建内部数据结构),使哈希表的桶数大约增加一倍。
...
如果要在 HashMap 实例中存储许多映射,则创建具有足够大容量的映射将比让它根据需要执行自动重新散列以增长表更有效地存储映射