黑马程序员技术交流社区

标题: foreach和for [打印本页]

作者: 王光保    时间: 2011-7-14 14:39
标题: foreach和for
foreach和for循环哪个使用的性能高?
作者: 匿名    时间: 2011-7-14 15:28
标题: 我认为一样的我认为一样的
我认为一样的我认为一样的
作者: 匿名    时间: 2011-7-14 19:14
我晕,应该for性能高些,foreach 是for的扩展,那么定是牺牲了某些资源而做到foreach,只能说有可能自己用for编写类似于foreach的功能时,效率可能没原本的foreach高。以上是个人理解。望牛人斧正
作者: 匿名    时间: 2011-7-14 22:29
个人认为一般情况foreach要比for性能强,同时也有局限性,比如引用数组或者集合的索引就不行了。for在循环时要判断是否越界,而foreach是单纯的迭代。foreach不但性能好,而且编程简单容易看懂所以今后应当尽量能用foreach就each
作者: 匿名    时间: 2011-7-15 10:43
第一,不能修改的是foreach引用变量,因为它是引用的,对它的修改没有意义也没有作用,它就像一个c/c++指针那样对集合中的元素进行指向引用;我们能通过引用看到它,但是没有能力动它。

第二,in之前的变量是引用变量,但in之后的集合确是实实在在的,所以可以对它操作,像.ADD();REMOVE()等方法可以使用。

第三,foreach引用变量大概是通过地址指向后面的集合当修改了集合的元素时,地址可能发生某种改变,所以不跳出循环继续遍历时,就可能出现引用找不到的情况。

某些情况不合适用foreach
1.只读:访问的元素不能被赋值,比如元素的自增等
2.单一结构:不可能同时遍历两个结构,比如比较两个数组
3.单一元素:只适合单一的元素读取
4.单向:只能向前单个元素的迭代
5.需java5支持:不要在java5前使用该语法
作者: 匿名    时间: 2011-7-17 12:52
foreach比较快,数据少的时候没什么差异,但是多了就不一样了。简单的用循环来输出一百万次就可以看到很大差异。
作者: 徐传任    时间: 2012-9-16 17:23
bucuo........




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2