看了这么多个博主的文章,凡事写Java的对于这个问题是肯定绕不开的。先说结论:
通过设置HashMap的初始化大小能够提高性能
问题是要怎样设置。
众所周知,HashMap当内部维护的哈希表的容量达到75%时,触发rehash,初始化就要设置成size/3x4。
阿里也在他们的java开发手册里也写明,并且为了抵消舍入误差,为size/3x4+1。伪代码应该是:
double size = list.size()/0.75+1;
Map<String, Object> hashMap = new HashMap<>(size);