A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯盼 中级黑马   /  2012-12-2 19:20  /  1732 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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++)
{
     ...........
}
可以看视频教程和书基本上都是第一种,是怎么回事呢?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
第一个for size()执行多次
第二个for size()执行一次
书上的和视频上的做法是 写书和录视频人的习惯

回复 使用道具 举报
首先楼主的想法很好,让我也思维开阔了。
1.第一种方法比较合乎规范,人们已经形成了特定的书写习惯。
2.如果list.siz()在for(){}体中被改变了,那么只能用第一种方法。
回复 使用道具 举报
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++)//在初始化的语句里面,都只执行一次,不用循环走占用资源,因而下面更效率,但为什么都用上面的呢,那是因为上面的是大家最初最能理解的方式
{
     ...........
}

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
人们更习惯于第一种写法,而第二种是第一种的优化,尽量在循环中少做一些可以避免的方法调用,这样可以节省方法栈的创建,提高效率。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马