在我看来for和foreach没有本质上的区别,都是循环执行的方法。
唯一的区别就是:
1、for需要先知道数组长度再操作,foreach不需要
2、foreach效率比for高很多,主要原因是for要进行很多次条件判断,另外从数组变量的数据结构来看
foreach直接通过结构体中next指针获取下一个值,而for循环需要根据key先进行一次hash才得到值。
结论:
在固定长度或长度不需要计算的时候for循环效率高于foreach;
在不确定长度,或计算长度有性能损耗的时候,用foreach比较方便.
并且foreach的时候会锁定集合中的对象.期间不能修改.
发表评论 取消回复