public class DataTestDemo {
public static void main(String[] args) {
List list = new ArrayList<>();
List list1 = new ArrayList<>();
List list2 = new ArrayList<>();
List list3 = new ArrayList<>();
for (int i = 0; i < 10000; i++) {
list.add(new String());
}
long startTime = System.currentTimeMillis();
//普通for
for (int i = 0; i < list.size(); i++) {
list1.add(list.get(i));
}
long endTime = System.currentTimeMillis();
System.out.println("普通for时间:"+(endTime - startTime));
//增强for
long startTime1 = System.currentTimeMillis();
for (String s : list) {
list2.add(s);
}
long endTime1 = System.currentTimeMillis();
System.out.println("增强for时间:"+(endTime1 - startTime1));
long startTime2 = System.currentTimeMillis();
//forEach
list.forEach(s->list3.add(s));
long endTime2 = System.currentTimeMillis();
System.out.println("forEach时间:"+(endTime2 - startTime2));
}
}
输出结果:
普通for时间:2 增强for时间:2 forEach时间:392.100000复制对比
public class DataTestDemo {
public static void main(String[] args) {
List list = new ArrayList<>();
List list1 = new ArrayList<>();
List list2 = new ArrayList<>();
List list3 = new ArrayList<>();
for (int i = 0; i < 100000; i++) {
list.add(new String());
}
long startTime = System.currentTimeMillis();
//普通for
for (int i = 0; i < list.size(); i++) {
list1.add(list.get(i));
}
long endTime = System.currentTimeMillis();
System.out.println("普通for时间:"+(endTime - startTime));
//增强for
long startTime1 = System.currentTimeMillis();
for (String s : list) {
list2.add(s);
}
long endTime1 = System.currentTimeMillis();
System.out.println("增强for时间:"+(endTime1 - startTime1));
long startTime2 = System.currentTimeMillis();
//forEach
list.forEach(s->list3.add(s));
long endTime2 = System.currentTimeMillis();
System.out.println("forEach时间:"+(endTime2 - startTime2));
}
}
输出结果:
普通for时间:3 增强for时间:4 forEach时间:383.1000000次复制对比
public class DataTestDemo {
public static void main(String[] args) {
List list = new ArrayList<>();
List list1 = new ArrayList<>();
List list2 = new ArrayList<>();
List list3 = new ArrayList<>();
for (int i = 0; i < 1000000; i++) {
list.add(new String());
}
long startTime = System.currentTimeMillis();
//普通for
for (int i = 0; i < list.size(); i++) {
list1.add(list.get(i));
}
long endTime = System.currentTimeMillis();
System.out.println("普通for时间:"+(endTime - startTime));
//增强for
long startTime1 = System.currentTimeMillis();
for (String s : list) {
list2.add(s);
}
long endTime1 = System.currentTimeMillis();
System.out.println("增强for时间:"+(endTime1 - startTime1));
long startTime2 = System.currentTimeMillis();
//forEach
list.forEach(s->list3.add(s));
long endTime2 = System.currentTimeMillis();
System.out.println("forEach时间:"+(endTime2 - startTime2));
}
}
输出结果
普通for时间:12 增强for时间:35 forEach时间:454.10000000次复制对比
public class DataTestDemo {
public static void main(String[] args) {
List list = new ArrayList<>();
List list1 = new ArrayList<>();
List list2 = new ArrayList<>();
List list3 = new ArrayList<>();
for (int i = 0; i < 10000000; i++) {
list.add(new String());
}
long startTime = System.currentTimeMillis();
//普通for
for (int i = 0; i < list.size(); i++) {
list1.add(list.get(i));
}
long endTime = System.currentTimeMillis();
System.out.println("普通for时间:"+(endTime - startTime));
//增强for
long startTime1 = System.currentTimeMillis();
for (String s : list) {
list2.add(s);
}
long endTime1 = System.currentTimeMillis();
System.out.println("增强for时间:"+(endTime1 - startTime1));
long startTime2 = System.currentTimeMillis();
//forEach
list.forEach(s->list3.add(s));
long endTime2 = System.currentTimeMillis();
System.out.println("forEach时间:"+(endTime2 - startTime2));
}
}
输出结果:
普通for时间:169 增强for时间:89 forEach时间:2245.修改前后位置测试,10000000
public class DataTestDemo {
public static void main(String[] args) {
List list = new ArrayList<>();
List list1 = new ArrayList<>();
List list2 = new ArrayList<>();
List list3 = new ArrayList<>();
for (int i = 0; i < 10000000; i++) {
list.add(new String());
}
long startTime2 = System.currentTimeMillis();
//forEach
list.forEach(s->list3.add(s));
long endTime2 = System.currentTimeMillis();
System.out.println("forEach时间:"+(endTime2 - startTime2));
//增强for
long startTime1 = System.currentTimeMillis();
for (String s : list) {
list2.add(s);
}
long endTime1 = System.currentTimeMillis();
System.out.println("增强for时间:"+(endTime1 - startTime1));
long startTime = System.currentTimeMillis();
//普通for
for (int i = 0; i < list.size(); i++) {
list1.add(list.get(i));
}
long endTime = System.currentTimeMillis();
System.out.println("普通for时间:"+(endTime - startTime));
}
}
输出结果:
forEach时间:1717 增强for时间:99 普通for时间:1616,修改前后位置1000000次复制
public class DataTestDemo {
public static void main(String[] args) {
List list = new ArrayList<>();
List list1 = new ArrayList<>();
List list2 = new ArrayList<>();
List list3 = new ArrayList<>();
for (int i = 0; i < 1000000; i++) {
list.add(new String());
}
long startTime2 = System.currentTimeMillis();
//forEach
list.forEach(s->list3.add(s));
long endTime2 = System.currentTimeMillis();
System.out.println("forEach时间:"+(endTime2 - startTime2));
//增强for
long startTime1 = System.currentTimeMillis();
for (String s : list) {
list2.add(s);
}
long endTime1 = System.currentTimeMillis();
System.out.println("增强for时间:"+(endTime1 - startTime1));
long startTime = System.currentTimeMillis();
//普通for
for (int i = 0; i < list.size(); i++) {
list1.add(list.get(i));
}
long endTime = System.currentTimeMillis();
System.out.println("普通for时间:"+(endTime - startTime));
}
}
输出结果:
forEach时间:70 增强for时间:35 普通for时间:117.修改前后测试100000次复制
public class DataTestDemo {
public static void main(String[] args) {
List list = new ArrayList<>();
List list1 = new ArrayList<>();
List list2 = new ArrayList<>();
List list3 = new ArrayList<>();
for (int i = 0; i < 100000; i++) {
list.add(new String());
}
long startTime2 = System.currentTimeMillis();
//forEach
list.forEach(s->list3.add(s));
long endTime2 = System.currentTimeMillis();
System.out.println("forEach时间:"+(endTime2 - startTime2));
//增强for
long startTime1 = System.currentTimeMillis();
for (String s : list) {
list2.add(s);
}
long endTime1 = System.currentTimeMillis();
System.out.println("增强for时间:"+(endTime1 - startTime1));
long startTime = System.currentTimeMillis();
//普通for
for (int i = 0; i < list.size(); i++) {
list1.add(list.get(i));
}
long endTime = System.currentTimeMillis();
System.out.println("普通for时间:"+(endTime - startTime));
}
}
输出结果:
forEach时间:42 增强for时间:3 普通for时间:2
说明:测试可能有不严谨的地方,时间,机器,执行顺序,cpu运行后效率降低也有可能,仅供参考



