新建一个hashMap的时候,可以通过initialCapacity设置hashMap长度的初始化值。
Map<String, Object> resultMap = new HashMap<String, Object>(initialCapacity: 5);
hashMap源码中initialCapacity的初始值为16,负载因子为0.75;
所以一个hashMap中默认存储长度为16 * 0.75 = 12,也就是如果hashMap.put的键值对数量小于12的时候,hashMap位置够用;但是当添加的键值对数超过12后,hashMap需要扩容,一倍,也就是长度从12扩容到24;
例如键值对一共13个,这样剩余11个位置性能都浪费了,那么如果已知需要添加的键值对数量,就可以通过设置initialMap的值,来避免hashMap扩容,减少性能消耗。
eg:我们需要往hashMap中添加6个键值对,6 / 0.75 = 8;那就可以把initialCapacity设置为9比较合适,节省性能。