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