在可预估或者已知长度的时候我们一般会对 HashMap 设置初始值以防止 Resize,我看到的代码一般是这样的
Map<String,Integer> params = new HashMap<>(size);
实际上只要我们看过相关代码我们知道这样是无法避免 Resize 的,如果想避免 Resize 对于 HashMap 应该是
Map<String,Integer> params = new HashMap<>(size, 1.0f);
但是这样内部极有可能形成 Entry 链,影响查找速度。那么是否可以设置长度为 size/默认 loadFactor(增加了内存的使用),既避免了扩容也保持了跟之前一样的查找效率呢?
如果 size/默认 loadFactor 是一个可选的比较好的方案,什么 HashMap 不提供这样一个构造方法呢?
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于