java中的HashMap存入效率测试与初始化容量大小之间的关系

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,存入一千万条数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值