对"for循环中尽量减少对变量的重复计算"提出质疑
在下面的一篇文章:
的"13. 尽量减少对变量的重复计算"中描述的:
我有以下的质疑!!如果有不对的地方,请大家拍砖...^_^
先看看我做的测试程序:
===========================================================
代码部分:
===========================================================
/java_test/src/com/b510/fors/TestFor.java
1 package com.b510.fors; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 /** 7 * 13. 尽量减少对变量的重复计算? 8 * @author hongten<br> 9 * <a href="http://www.admin10000.com/document/1070.html">26个提升java性能需要注意的地方</a> 10 */ 11 public class TestFor { 12 13 public static void main(String[] args) { 14 int length = 10000; 15 List<String> list = new ArrayList<String>(); 16 17 for(int i = 0,len = length;i< len;i++){ 18 list.add(String.valueOf(i)); 19 } 20 21 long testFor = testFor(list); 22 long testFors = testFors(list); 23 24 25 System.out.println("the result is following...."); 26 System.out.println("提倡方法 -- > testfor : "+testFor); 27 System.out.println("================"); 28 System.out.println("不提倡方法 -- > testFors : "+testFors); 29 } 30 31 /** 32 * <a href="http://www.admin10000.com/document/1070.html">26个提升java性能需要注意的地方</a><br> 33 * 中提倡的方法 34 * @param list 35 * @return 36 */ 37 public static long testFor(List<String> list){ 38 long begin = System.currentTimeMillis(); 39 for(int i =0,len = list.size();i< len;i++){ 40 System.out.println(list.get(i).toString()); 41 } 42 long end = System.currentTimeMillis(); 43 return (end - begin); 44 } 45 46 /** 47 * <a href="http://www.admin10000.com/document/1070.html">26个提升java性能需要注意的地方</a><br> 48 * 中不提倡的方法 49 * @param list 50 * @return 51 */ 52 public static long testFors(List<String> list){ 53 long begin = System.currentTimeMillis(); 54 for(int i = 0;i<list.size();i++){ 55 System.out.println(list.get(i).toString()); 56 } 57 long end = System.currentTimeMillis(); 58 return (end - begin); 59 } 60 }
运行效果:
a.
1 int length = 10;
b.
1 int length = 100;
c.
1 int length = 1000;
d.
1 int length = 10000;
总结:测试了很多数据,表示
1 for(int i = 0;i<list.size();i++)
要比
1 for(int i =0,len = list.size();i< len;i++)
程序要快...
========================================================
More reading,and english is important.
I'm Hongten
大哥哥大姐姐,觉得有用打赏点哦!多多少少没关系,一分也是对我的支持和鼓励。谢谢。
Hongten博客排名在100名以内。粉丝过千。
Hongten出品,必是精品。
E | hongtenzone@foxmail.com B | http://www.cnblogs.com/hongten
========================================================