首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

这几种for循环遍历,有什么异同(性能,安全方面),该如何处理

2012-04-08 
这几种for循环遍历,有什么异同(性能,安全方面)Java code**************************************迭代(cbc

这几种for循环遍历,有什么异同(性能,安全方面)

Java code
**************************************迭代(cbc为collection类型)********************************for(Iterator<CoreBillBaseInfo> iter = cbc.iterator();iter.hasNext();){            if(SynInvBillFacadeControllerBean.exit){                logBuffer.append("用户请求退出...\r\n");                break;            }            CoreBillBaseInfo cbi = iter.next();            String billId = cbi.getDescription();//单据编号            Date bizDate = cbi.getBizDate();//业务日期}***************************************简单的for循环********************************************************for(int i=0;i<cbc.size;i++){             CoreBillBaseInfo cbi = cbc.getObject(i);}


[解决办法]
对所有的集合用迭代遍历调用,比如用List,换成Collection 调用iterator都会返回Iterator,这是迭代模式,迭代器模式抽象了具体迭代器角色,使得客户程序更具一般性和重用性。不知道说的对不。
[解决办法]
代码不仅要考虑性能,安全,还要考虑可读性。
怎么写常见就怎么写,别人也好读懂。不然不适合做程序员。

有时候在对性能影响不大的地方,增强可读性才是王道。
[解决办法]
i<cbc.size把这个不要这样写,

写成:

int size = cbc.size;
i<size
否则,每次循环都要计算一次size,数据量大的话,百万级别的话,内存不堪重负的。
[解决办法]
探讨

为什么,我的collection中是info对象(类似student,people的字段有15个左右)引用:

数量小的话,两者差不多,数量大的话(并且集合中不是基本数据类型,是一些复杂对象),迭代好一点。

[解决办法]
探讨

引用:

为什么,我的collection中是info对象(类似student,people的字段有15个左右)引用:

数量小的话,两者差不多,数量大的话(并且集合中不是基本数据类型,是一些复杂对象),迭代好一点。




记录的存取方式有两种:一种是顺序存储,另一种是链接存储
对于顺序存储的记录可以根据其下标找到对应的记录,而链接存……

热点排行