黑马程序员技术交流社区

标题: 代码for( : )分析 [打印本页]

作者: 騛鹏    时间: 2013-3-21 16:50
标题: 代码for( : )分析
本帖最后由 騛鹏 于 2013-3-21 18:43 编辑
  1. import java.util.*;
  2. class  SystemDemo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 Properties prop = System.getProperties();

  7.                 for (Object obj : prop.keySet())
  8.                 {
  9.                         String value = (String)prop.get(obj);
  10.                         sop(obj+"..."+value);
  11.                 }
  12.         }
  13.         public static void sop(Object obj)
  14.         {
  15.                 System.out.println(obj);
  16.         }
  17. }
复制代码
请求分析 增强for(:){} 中的代码  不是很理解 ?
作者: VOIDMAIN    时间: 2013-3-21 17:44
增强for循环主要是用于遍历, for (Object obj : prop.keySet())就是把prop.keySet()中的每一个元素复制给Object obj对象,没赋值一次就执行以此{}内的方法;
作者: 戴乾刚    时间: 2013-3-21 17:46
代码中的for语句:
Object是集合中元素类型,obj是定义的一个Object类型引用变量,prop.keySet()是被遍历的集合
从集合中第一个元素开始遍历,遍历到某个元素时,引用变量obj就指向当前遍历到的元素
作者: IT菜鸟    时间: 2013-3-21 17:58

Properties prop = System.getProperties();  得到到的是系统参数。里面放的是键值对(相当于map)
prop.keySet() , 得到是一个键的set 的集合


for (Object obj : prop.keySet())  { // 遍历 键的集合
              
                        String value = (String)prop.get(obj);  // 根据键,取得 参数值
                        sop(obj+"..."+value); //调用方法 打印出 键值对 ,键 和值之间 用 "...."分隔

                }
作者: syusikoku    时间: 2014-3-7 21:20
这是增强型的for语句。格式for(修饰符 数据类型 变量:数组或集合){}  ,其实数组也是集合,这里的集合是要实现了Iterable的集合体,因为只有实现了Iterable的接口,它才可以被迭代,对象才可以调用Iterator方法。下面是我今天复习的代码,你可以研究分析一下:
    private static int getVariableParaValue2(int i,int... args) {
                int sum=i;
                /**
                 * 我们这里来使用for的高级使用的方式来对数组进行遍历
                 *    格式如下:
                       for(修饰符 变量名:数组或集合){}
                       注意如果是集合的话要是实现iteraable的接口才行
                         因为iterable为一个接口,它的子类iterator是迭代器。
                         只有实现了该接口的集合才可以被迭代。对象才可以调用iterator()方法

                        只有实现了iterator的集合体才可以被迭代
                 */
                for(int arg:args){
                        sum+=arg;
                }
                return sum;
        }




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