A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈中岩 中级黑马   /  2013-4-13 10:22  /  1008 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈中岩 于 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??
希望好心人能帮我解释下?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

2 个回复

正序浏览
老师好像也说了这句话!    增强for循环中的集合变量可以是数组   或者实现来了Iterator接口的集合类吧!  这个我做了笔记!嘿嘿
回复 使用道具 举报
Java 新增加的for-each循环只能对Iterable<E>或者数组使用。
注意,数组并没有实现这个这个接口Iterable<E>,

它是作为特例来实现的
。所以别说不能拿Iterator<E>来做for-each,要是想把数组作为参数传递给一个接受Iterable<E>的方法,还非得用java.util.Arrays.asList()来包装一下。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马