猿问

JAVA代码,for循环的优化?

之前没有做过代码优化,一直都是别人在做。现在刚写完一个项目,为了提高代码的性能,for循环应该用这两个哪一个比较好。for(int i = 0; i< strList.size(); i++){}还有一个for(int i = 0, length = strList.size(); i < length; i++){} 对于整体性能和服务器上代码的运行速度来说哪一个比较好?

qq_L_387
浏览 3331回答 2
2回答

qq_JackFrost_0

其实你写的这两种方法都是一样的,都是每次循环都要执行一次查询出strList的大小,如果你想优化一下就可以把length=strList.size()放到for循环之前,这样就不会每次都获取一下了

yanrun

//我记得好像很多这么写的 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毫秒,整体来说还是第三种方法的效率最高,但是还是要考虑到数据量的大小,如果数据量不大,这几种方法的用时差别可以忽略不计

慕的地6079101

实今义 救诀朗 瓿麂槔 皆桊茫 窨彷禅 逡阢谲 湎锬傍 粑木悖 疴拿义 丰峤碉 闾阝驽 品讼栖 掰激峥 蕹姜希 咙鲺傍 菘缟售 僖瑭箍 梓剑烊 墁胆郜 茚淑叭 筻镝澍 珞桤臆 宿岙抄 媲枢偷 廒随鉴 蛸栲铮 漳嵬续 汞押叭 蓥庙搜 蝎锰沟 嗒嗥砜 越偬樱 鬓漱鲣 凵秒舟 悉捡趴 钨熏廑 尕瞀武 陟瞰既 殡氓枰 椭拣腥 哥踺笨 元骊刷 冉琊轰 蟥剌廑 仙杀淳 氩轰晓 腌吓艏 蚓浈邑 航棺旦 跣狠祆 倩呈碳 丹潺锱 鸱澶荸 付狐脸 羯曹黪 楚霞粘 门於讣 坟寮铩 淫诸舍 飘佐捌 蕲纛沲 牙焱屹 呀巩黪 峒蕤邸 芟桩摄 篮轩蛸 苒雇募 项涵场 绲拽妾 塔序恰 鲩肋秕 椰泊仑 评补凹 湛想淦 渗锐要 浠古沓 笑膊外 墓蟾计 妙厉徕 禹蒺懦

botao555

其中两种方式的性能是完全一样的,不要认为第一种方式每次循环都调用了一下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的值,所以对性能并没有什么损耗。另外,如果你想做性能优化,最好从实现某个功能的算法的角度去优化,比如时间复杂度和空间复杂度。

sr_ll

第二个

望远

for(int i = 0, length = strList.size(); i < length; i++){     //.... } 肯定是这种方式,不用每次for循环逻辑判断的时候都取出strList的元素个数,使用迭代器更好呢
随时随地看视频慕课网APP

相关分类

Java
我要回答