ArrayList遍历速度比较

本文对比了Java中ArrayList的三种遍历方式——增强型for循环、普通for循环和iterator for循环的效率。结果显示,增强型for循环在总时间上表现最快。

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

ArrayList遍历速度比较

1、增强型for循环

Long time4 = System.currentTimeMillis();
for (Future<List<Map<String, Object>>> future : resultFeatureList) {
    if (future.get().size() > 0) {
        for (Map<String, Object> item:future.get()) {
            String md5 = (String) item.get("md5");
            List<Map<String,String>> sensitiveList = (List<Map<String, String>>) item.get("result");
            for (Map<String,String> item1:sensitiveList) {
                item1.put("md5",md5);
                sensitiveData.add(item1);
            }
        }
    }
}

executor.shutdown();
executor.awaitTermination(200, TimeUnit.SECONDS);

Long time3 = System.currentTimeMillis();

得到输出时间:增强型for循环使用时间—> 50818ms

2、普通for循环

 Long time4 = System.currentTimeMillis();
for (int i = 0; i < resultFeatureList.size(); i++) {
    Future<List<Map<String, Object>>> future = resultFeatureList.get(i);
    if (future.get().size() > 0) {
        List<Map<String, Object>> get = future.get();
        for (int i1 = 0; i1 < get.size(); i1++) {
            Map<String, Object> item = get.get(i1);
            String md5 = (String) item.get("md5");
            List<Map<String, String>> sensitiveList = (List<Map<String, String>>) item.get("result");
            for (int i2 = 0; i2 < sensitiveList.size(); i2++) {
                Map<String, String> item1 = sensitiveList.get(i2);
                item1.put("md5", md5);
                sensitiveData.add(item1);
            }
        }
    }
}
executor.shutdown();
executor.awaitTermination(200, TimeUnit.SECONDS);

Long time3 = System.currentTimeMillis();
LOG.warn("处理文件时间---> " + (time2 - time1) + "ms");
LOG.warn("File parsing is complete in " + (time3 - time1) + "ms");
LOG.warn("处理文件数量---> " + filesProcessed);
LOG.warn("普通for循环使用时间---> " + (time3 - time4) + "ms");

得到输出时间:普通for循环使用时间—> 54631ms

3、iterator for循环

 Long time4 = System.currentTimeMillis();
for (Iterator<Future<List<Map<String, Object>>>> iterator = resultFeatureList.iterator(); iterator.hasNext(); ) {
    Future<List<Map<String, Object>>> future = iterator.next();
    if (future.get().size() > 0) {
        List<Map<String, Object>> get = future.get();
        for (Iterator<Map<String, Object>> iter = get.iterator(); iter.hasNext(); ) {
            Map<String, Object> item = iter.next();
            String md5 = (String) item.get("md5");
            List<Map<String, String>> sensitiveList = (List<Map<String, String>>) item.get("result");
            for (Iterator<Map<String, String>> it = sensitiveList.iterator(); it.hasNext(); ) {
                Map<String, String> item1 = it.next();
                item1.put("md5", md5);
                sensitiveData.add(item1);
            }
        }
    }
}
executor.shutdown();
executor.awaitTermination(200, TimeUnit.SECONDS);

Long time3 = System.currentTimeMillis();
LOG.warn("处理文件时间---> " + (time2 - time1) + "ms");
LOG.warn("File parsing is complete in " + (time3 - time1) + "ms");
LOG.warn("处理文件数量---> " + filesProcessed);
LOG.warn("Iterator for循环使用时间---> " + (time3 - time4) + "ms");

得到输出时间:Iterator for循环使用时间—> 55241ms

不是处理数据花了这么久 其中还有我数据处理的时间 但是在总的时间上作比较可以看出来增强型for循环是最快的!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值