ArrayList的不同的遍历方式性能比较,其实都差不了多少

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ArrayList的不同的遍历方式性能比较,其实都差不了多少相关的知识,希望对你有一定的参考价值。

//RadomAcess的接口for..i的遍历比for..loop的快,@more see comments for interface RandomAcess 
 
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
 
public class ListPerformanceTest {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        for(int i = 0; i < Integer.MAX_VALUE / 200; i++) {
            list.add("1");
        }
        long d1 = System.currentTimeMillis();
        /***************** fastest ************************/
//        for(int i = 0, n = list.size(); i < n; i++) {
//            list.get(i);
//        }
        /***************** second fastest due to each loop would get the list size ************************/
//        for(int i = 0; i < list.size(); i++) {
//            list.get(i);
//        }
        /***************** not know why this is faster than the last ************************/
//        for(Iterator<?> it = list.iterator(); it.hasNext();) {
//            it.next();
//        }
 
//        for(String s : list) {
//            if(s != null) {
//                continue;
//            }
//        }
        System.out.println("Times(ms):" + (System.currentTimeMillis() - d1));
    }
}

以上是关于ArrayList的不同的遍历方式性能比较,其实都差不了多少的主要内容,如果未能解决你的问题,请参考以下文章

lua中遍历table的几种方式比较

线性表的比较和抽象数据结构(栈&队列)的实现方式

说出ArrayList,Vector, LinkedList的存储性能和特性

对java中arraylist深入理解

怎么遍历ArrayList中的list呢?

Java小白入门200例106之遍历ArrayList的几种方式