数组结构
示例代码:
/*数组结构的三种循环遍历效率对比*/
@org.junit.Test
public void test13(){
List list = new ArrayList<>(10000000);
for(int i=0;i<1000;i++){
list.add(i);
}
/*普通for循环*/
long a = System.currentTimeMillis();
int size = list.size();
for(int i=0;i
以下对比结果为大概率事件,仅供参考
1000数据量下耗时结果:迭代器耗时<=增强for循环耗时<普通for循环耗时,迭代器和增强for循环不相上下
普通for循环耗时:12--ms
增强for循环耗时:7--ms
迭代器耗时:6--ms
10000数据量下耗时结果:迭代器耗时<增强for循环耗时<普通for循环耗时
普通for循环耗时:67--ms
增强for循环耗时:53--ms
迭代器耗时:47--ms
10W数据量下耗时结果:迭代器耗时<普通for循环耗时<增强for循环耗时
普通for循环耗时:540--ms
增强for循环耗时:865--ms
迭代器耗时:439--ms
30W数据量下耗时结果:迭代器耗时<=增强for循环耗时<普通for循环耗时,迭代器和增强for循环不相上下
普通for循环耗时:1855--ms
增强for循环耗时:1281--ms
迭代器耗时:1224--ms
50W数据量下耗时结果:迭代器耗时<=增强for循环耗时<普通for循环耗时,迭代器和增强for循环不相上下
普通for循环耗时:2844--ms
增强for循环耗时:2245--ms
迭代器耗时:2215--ms
100W数据量下耗时结果:迭代器耗时<增强for循环耗时<普通for循环耗时
普通for循环耗时:5149--ms
增强for循环耗时:4785--ms
迭代器耗时:4417--ms
500W数据量下耗时结果:这三种方式基本不相上下
普通for循环耗时:20698--ms
增强for循环耗时:20814--ms
迭代器耗时:20963--ms
1000W数据量下耗时结果:迭代器耗时<增强for循环耗时<普通for循环耗时,迭代器和增强for循环不相上下
普通for循环耗时:42957--ms
增强for循环耗时:39645--ms
迭代器耗时:39143--ms
链表结构
示例代码:
/*链表结构的三种循环遍历效率对比*/
@org.junit.Test
public void test14(){
LinkedList list = new LinkedList<>();
for(int i=0;i<1000000;i++){
list.add(i);
}
/*普通for循环*/
long a = System.currentTimeMillis();
int size = list.size();
for(int i=0;i
以下对比结果为大概率事件,仅供参考
1000数据量下耗时结果:增强for循环耗时<=迭代器耗时<普通for循环耗时,迭代器和增强for循环基本一个数量级
普通for循环耗时:17--ms
增强for循环耗时:5--ms
迭代器耗时:7--ms
10000数据量下耗时结果:迭代器耗时<=增强for循环耗时<普通for循环耗时,迭代器和增强for循环基本一个数量级
普通for循环耗时:115--ms
增强for循环耗时:50--ms
迭代器耗时:43--ms
10W数据量下耗时结果:迭代器耗时<=普通for循环耗时<增强for循环耗时,迭代器和增强for循环不相上下
普通for循环耗时:5350--ms
增强for循环耗时:403--ms
迭代器耗时:406--ms
30W数据量下耗时结果:增强for循环耗时<迭代器耗时<普通for循环耗时,迭代器和增强for循环不相上下
普通for循环耗时:54948--ms
增强for循环耗时:1261--ms
迭代器耗时:1272--ms
50W数据量下耗时结果:迭代器耗时<=增强for循环耗时<普通for循环耗时,迭代器和增强for循环基本一个数量级
普通for循环耗时:327258--ms
增强for循环耗时:1936--ms
迭代器耗时:1986--ms
总结: