黑马程序员技术交流社区

标题: 高级for循环的问题。 [打印本页]

作者: 陈中岩    时间: 2013-4-13 10:22
标题: 高级for循环的问题。
本帖最后由 陈中岩 于 2013-4-13 20:25 编辑

  1. class Test
  2. {
  3.          public static void main(String[] args)
  4.         {
  5.                  int[] arr={4,3,5,3,4};
  6.                  for (int x:arr)
  7.                  {
  8.                          System.out.println(x);
  9.                  }
  10.          }
  11. }
复制代码
代码在上面,数组可以使用高级for循环,

老师讲的是实现了iterable接口后的类可以使用高级for,
因为高级for实际上调用的也是迭代器,
我的问题是数组既然能适应高级for循环,那是不是数组以实现了iterable接口,如果是的话,数组也就可以使用
迭代器取出元素了,那怎么用呢?
如果没有实现iterable,那数组为什么可以使用高级for??
希望好心人能帮我解释下?
作者: 王大斌    时间: 2013-4-13 10:46
Java 新增加的for-each循环只能对Iterable<E>或者数组使用。
注意,数组并没有实现这个这个接口Iterable<E>,

它是作为特例来实现的
。所以别说不能拿Iterator<E>来做for-each,要是想把数组作为参数传递给一个接受Iterable<E>的方法,还非得用java.util.Arrays.asList()来包装一下。
作者: Asan    时间: 2013-4-13 12:31
老师好像也说了这句话!    增强for循环中的集合变量可以是数组   或者实现来了Iterator接口的集合类吧!  这个我做了笔记!嘿嘿




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