三種迭代Java ArrayList方法及比較


閑來無事,研究一下Java Collection,首先是ArrayList。

通過三種方式遍歷了長度為100000的ArrayList。

import java.util.*;

public class CollectionTest {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        for (int i = 0 ; i < 100000 ; i++) {
            list.add(i);
        }
        // 第一種遍歷list的方式
        System.out.println("-------------foreach--------------------");
        long t1 = System.currentTimeMillis();
        for(int str: list) {
            System.out.println(str);
        }
        long t2 = System.currentTimeMillis();
        // 第二種遍歷list的方式
        System.out.println("-------------------toArray-----------------");
        Integer[] array = new Integer[list.size()];
        list.toArray(array);
        long t3 = System.currentTimeMillis();
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
        long t4 = System.currentTimeMillis();

        // 第三種遍歷list的方式
        System.out.println("--------------Iterator-----------------");
        Iterator<Integer> it = list.iterator();
        long t5 = System.currentTimeMillis();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
        long t6 = System.currentTimeMillis();

        long t12 = t2 - t1;
        long t34 = t4 - t3;
        long t56 = t6 - t5;
        System.out.println(t12);
        System.out.println(t34);
        System.out.println(t56);
    }
}

運行的結果為1104,978,658

可以發現,使用Iterator最快,toArray次之,forEach最慢。


免責聲明!

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



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