黑马程序员技术交流社区

标题: 小疑惑? [打印本页]

作者: 冯盼    时间: 2012-12-2 19:20
标题: 小疑惑?
本帖最后由 yunhaitian 于 2012-12-3 10:53 编辑

List<String> list = new ArrayList<String>();
list中有若干数据
for(int i=0;i<list.size();i++)
{
    .......
}
不如下面这个效率高
for(int i=0,int len = list.size();i<len;i++)
{
     ...........
}
可以看视频教程和书基本上都是第一种,是怎么回事呢?
作者: 葬天    时间: 2012-12-2 19:39
第一个for size()执行多次
第二个for size()执行一次
书上的和视频上的做法是 写书和录视频人的习惯


作者: 王震阳老师    时间: 2012-12-2 20:49
首先楼主的想法很好,让我也思维开阔了。
1.第一种方法比较合乎规范,人们已经形成了特定的书写习惯。
2.如果list.siz()在for(){}体中被改变了,那么只能用第一种方法。
作者: 深井看海    时间: 2012-12-2 22:23
List<String> list = new ArrayList<String>();
list中有若干数据
for(int i=0;i<list.size();i++)//list.size()是一个方法,在for循环中,不断的执行,那么你就在不断的调用此方法,执行方法里面的内容,这样在效率上来说就大打折扣
{
    .......
}
不如下面这个效率高
for(int i=0,int len = list.size();i<len;i++)//在初始化的语句里面,都只执行一次,不用循环走占用资源,因而下面更效率,但为什么都用上面的呢,那是因为上面的是大家最初最能理解的方式
{
     ...........
}

作者: 刘子义    时间: 2012-12-3 09:17
人们更习惯于第一种写法,而第二种是第一种的优化,尽量在循环中少做一些可以避免的方法调用,这样可以节省方法栈的创建,提高效率。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2