增強for循環用法


1.首先增強for循環和iterator遍歷的效果是一樣的,也就說增強for循環的內部也就是調用iteratoer實現的,

但是增強for循環有些缺點,例如不能在增強循環里動態的刪除集合內容。不能獲取下標等。 2.ArrayList由於使用數組實現,因此下標明確,最好使用普通循環。 3.而對於LinkedList 由於獲取一個元素,要從頭開始向后找,因此建議使用增強for循環,也就是iterator。 下面的例子可以證明

package com.ljq.test;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
 * 增強for循環用法
 * 
 * @author jiqinlin
 * 
 */
public class ForTest {

    public static void main(String[] args) {
        
        //List<Integer> list = new ArrayList<Integer>();
        List<Integer> list = new LinkedList<Integer>();
        for (int i = 0; i < 50000; i++) {
            list.add(11);
        }

        int resutl = 0;
        long start = System.currentTimeMillis();
        for (int i = 0; i < list.size(); i++) {
            resutl = list.get(i);
        }
        System.out.println("普通循環使用了"+ (System.currentTimeMillis() - start)+"毫秒");

        
        start = System.currentTimeMillis();
        for (int c2 : list) {
        }
        System.out.println("增強for循環使用了"+ (System.currentTimeMillis() - start)+"毫秒");
    }

}

使用ArrayList運行結果如下

把ArrayList改為LinkedList,我這里內存溢出了,運行結果如下

於是list改成50000,運行結果如下

所以在使用的時候適當選擇就好了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM