Gee*_*eek 1 java hashtable data-structures
我事先并不知道我将要存储多少元素Hashmap.那么我的能力有多大HashMap?我应该考虑哪些因素?我想尽可能减少重复过程,因为它真的很贵.
您希望在空间要求和速度之间进行良好的权衡(如果发生许多冲突,则会减少,如果减少空间分配,则会更有可能).
您可以定义一个加载因子,默认可能没问题.
但是你还想避免的是,随着它的增长,必须重建和扩展哈希表.因此,您希望预先确定最大容量.不幸的是,为此,你需要知道你要投入多少钱.
如果你能够浪费一点内存,并且至少有一个合理的上限可以获得多大的内存,你可以将其作为初始容量.如果你保持低于这个容量,它永远不会重新发生.内存要求与容量成线性关系(可能有人有数字).请记住,默认加载因子为0.75时,您需要将容量设置为略高于元素数,因为当表已满75%时,它将扩展表.
如果你真的不知道,只需使用默认值.不是因为它们在你的情况下是完美的,而是因为你没有任何替代设置的基础.
好消息是,即使您设置了次优值,它仍然可以正常工作,只需浪费一点内存和/或CPU周期.
| 归档时间: |
|
| 查看次数: |
767 次 |
| 最近记录: |