//我记得好像很多这么写的
int len = strList.size();
for(int i = 0; i< len; i++){
//dosomething
}这么写不用每次循环都计算strList.size(),可以提升一定的性能但是如果数据量不是很大的话提升也不会太明显刚做了一下实验,循环打印100万条数据(从0到999999)第一种方法最高耗时5819毫秒,最短耗时5788毫秒,平均耗时5809.9毫秒,第二种方法最高耗时5850毫秒,最短耗时5755毫秒,平均耗时5796.7毫秒,第三种方法最高耗时5833毫秒,最短耗时5763毫秒,平均耗时5788.3毫秒,整体来说还是第三种方法的效率最高,但是还是要考虑到数据量的大小,如果数据量不大,这几种方法的用时差别可以忽略不计
其中两种方式的性能是完全一样的,不要认为第一种方式每次循环都调用了一下size()方法就觉得性能偏低了,看下size的源码就知道了: /**
* Returns the number of elements in this list.
*
* @return the number of elements in this list
*/
public int size() {
return size;
}调用size()直接返回了成员变量size的值,所以对性能并没有什么损耗。另外,如果你想做性能优化,最好从实现某个功能的算法的角度去优化,比如时间复杂度和空间复杂度。