这几种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,数据量大的话,百万级别的话,内存不堪重负的。
------解决方案--------------------
------解决方案--------------------