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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 董志超 中级黑马   /  2012-10-27 08:27  /  1235 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 董志超 于 2012-10-27 19:00 编辑

听老师将传统for与高级for的区别时
说高级for必须有被遍历的目标
那么在什么情况下不具备被遍历的目标呢?
举例说明

评分

参与人数 1黑马币 +15 收起 理由
韩军博 + 15 神马都是浮云

查看全部评分

5 个回复

倒序浏览
遍历的目标一般是数组或集合,这些东西需要你遍历。
回复 使用道具 举报
增强for循环必须实行iterable接口的集合或数组,也就是说没有实现iterable接口的结合类不能被遍历。前不久我发过下面的一个贴,参考一下


类关系示意图
Iterable(接口)
    │
    └--Collection (接口)
        ├-List(接口)
        │ ├-LinkedList  不同步  (构造同步:List list = Collections.synchronizedList(new LinkedList(...));)
        │ ├-ArrayList   不同步
        │ └-Vector      同步
        │ └--Stack     同步
        └-Set
            ├--EnumSet
            ├--HashSet --LinkedHashSet
            └--TreeSet
Map
├--Hashtable
├--HashMap --LinkedHashMap
└--WeakHashMap
通过关系图可以得知List集合和Set集合适用于增强for,map不可以

评分

参与人数 1黑马币 +6 收起 理由
韩军博 + 6 神马都是浮云

查看全部评分

回复 使用道具 举报
高级for就是用来遍历的,只是传统for的增强版,不是集合或数组自然就不能遍历了
回复 使用道具 举报
路过............
回复 使用道具 举报
给你举个例子就ok
  1. package test;
  2. import java.util.*;
  3. class  Test2{
  4.      public static void main(String[] args) {
  5.                      char[] arr=new char[]{'a','b','c','d','e','f'};//这个就是遍历目标
  6.                      //for
  7.                      for(int i=0;i<arr.length;i++){
  8.                              System.out.println(arr[i]);
  9.                      }
  10.                      //高级for
  11.                      for(char c:arr){
  12.                              System.out.println(c);
  13.                      }
  14.                     
  15.                      //假如有这么一个命题,让你循环输出0-100
  16.                      //for
  17.                      for(int i=0;i<=100;i++)
  18.                              System.out.println(i);
  19.                      //但是高级for就不知道怎么写了。难道要写一个int[] arr=[]{1,2,3,4,5......100}??
  20.                      //所以高级for必须要有遍历对象才可以遍历
  21.       }
  22. }

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