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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 騛鹏 中级黑马   /  2013-3-21 16:50  /  1656 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 騛鹏 于 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(:){} 中的代码  不是很理解 ?

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

4 个回复

倒序浏览
增强for循环主要是用于遍历, for (Object obj : prop.keySet())就是把prop.keySet()中的每一个元素复制给Object obj对象,没赋值一次就执行以此{}内的方法;
回复 使用道具 举报
代码中的for语句:
Object是集合中元素类型,obj是定义的一个Object类型引用变量,prop.keySet()是被遍历的集合
从集合中第一个元素开始遍历,遍历到某个元素时,引用变量obj就指向当前遍历到的元素
回复 使用道具 举报

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


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

                }

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

回复 使用道具 举报
这是增强型的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;
        }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马