1.这里是我做的测试代码
public static void main(String[] args) {
int initialSize = 10000000;
//HashMap存入效率测试
Long start1 = System.currentTimeMillis();
Map<Integer,Integer> map = new HashMap<>();
for (int i = 0; i < initialSize; i++) {
map.put(i, i);
}
Long end1 = System.currentTimeMillis();
logger.info("未初始化HashMap大小,存入一千万条数据耗时:" + (end1 - start1) + "毫秒");
Long start2 = System.currentTimeMillis();
Map map1 = new HashMap<>(initialSize / 2);
for (int i = 0; i < initialSize; i++) {
map1.put(i, i);
}
Long end2 = System.currentTimeMillis();
logger.info("初始化HashMap为500W,存入一千万条数据耗时:" + (end2 - start2) + "毫秒");
Long start3 = System.currentTimeMillis();
Map map3 = new HashMap<>(initialSize);
for (int i = 0; i < initialSize; i++) {
map3.put(i, i);
}
Long end3 = System.currentTimeMillis();
logger.info("初始化HashMap为1000W,存入一千万条数

通过对HashMap进行不同初始化容量的存入效率测试,发现预估并设置合理的初始容量能显著提高性能,避免扩容带来的性能损耗。阿里巴巴开发者手册推荐使用特定公式来计算初始容量,以优化HashMap的使用。
最低0.47元/天 解锁文章
8181

被折叠的 条评论
为什么被折叠?



