• for循环和foreach循环效率对比


    package com.baoxing.test;
    
    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.List;
    
    public class TestForEach {
        public static void main(String[] args) {
            //实例化arrayList
                    List<Integer> arrayList = new ArrayList<Integer>();
                    //实例化linkList
                    List<Integer> linkList = new LinkedList<Integer>();
                
                    //插入10万条数据
                    for (int i = 0; i < 100000; i++) {
                        arrayList.add(i);
                        linkList.add(i);
                    }
                    int array = 0;
                    //用for循环arrayList
                    long arrayForStartTime = System.currentTimeMillis();
                    for (int i = 0; i < arrayList.size(); i++) {
                        array = arrayList.get(i);
                    }
                    long arrayForEndTime = System.currentTimeMillis();
                    System.out.println("用for循环arrayList 10万次花费时间:" + (arrayForEndTime - arrayForStartTime) + "毫秒");
                    
                    //用foreach循环arrayList
                    long arrayForeachStartTime = System.currentTimeMillis();
                    for(Integer in : arrayList){
                        array = in;
                    }
                    long arrayForeachEndTime = System.currentTimeMillis();
                    System.out.println("用foreach循环arrayList 10万次花费时间:" + (arrayForeachEndTime - arrayForeachStartTime ) + "毫秒");
                    
                    //用for循环linkList
                    long linkForStartTime = System.currentTimeMillis();
                    int link = 0;
                    for (int i = 0; i < linkList.size(); i++) {
                        link = linkList.get(i);
                    }
                    long linkForEndTime = System.currentTimeMillis();
                    System.out.println("用for循环linkList 10万次花费时间:" + (linkForEndTime - linkForStartTime) + "毫秒");
                    
                    //用froeach循环linkList
                    long linkForeachStartTime = System.currentTimeMillis();
                    for(Integer in : linkList){
                        link = in;
                    }
                    long linkForeachEndTime = System.currentTimeMillis();
                    System.out.println("用foreach循环linkList 10万次花费时间:" + (linkForeachEndTime - linkForeachStartTime ) + "毫秒");
                
    
                            
        }    
    }
    用for循环arrayList 10万次花费时间:7毫秒
    用foreach循环arrayList 10万次花费时间:14毫秒
    用for循环linkList 10万次花费时间:25095毫秒
    用foreach循环linkList 10万次花费时间:11毫秒
    可以看出,循环ArrayList时,普通for循环比foreach循环花费的时间要少一点;循环LinkList时,普通for循环比foreach循环花费的时间要多很多。
    
    当我将循环次数提升到一百万次的时候,循环ArrayList,普通for循环还是比foreach要快一点;但是普通for循环在循环LinkList时,程序直接卡死。
  • 相关阅读:
    SSL延迟有多大?(转)
    Nginx/LVS/HAProxy负载均衡软件的优缺点详解(转)
    lvs、haproxy、nginx 负载均衡的比较分析(转)
    入木三分学网络第一篇--VRRP协议详解第一篇(转)
    从一个开发的角度看负载均衡和LVS(转)
    四层和七层负载均衡的区别(转)
    geo实现方案
    HTTP API 设计指南(转)
    app后端设计(0)--总目录(转)
    Django接收自定义http header(转)
  • 原文地址:https://www.cnblogs.com/cbxBlog/p/9390445.html
Copyright © 2020-2023  润新知