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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

for(Object obj : app.keySet())
这句for循环里面的 : 是什么意思啊??

点评

增强for循环,老毕基础视频第17天里有讲  发表于 2015-2-27 16:21

16 个回复

倒序浏览
这是for语句的第二种遍历方法,这是java1.5后出现的,写法是:for (循环变量类型 循环变量名称 : 要被遍历的对象)
:没什么,只是规定的写法,这样的话遍历起来更方便些。
  1.                 for(Object obj : app.keySet()) {
  2.                         System.out.println(obj.toString());
  3.                 }
  4.                
  5.                 //和这种写法效果类似,上面写法更方便些
  6.                 Iterator<String> itr = app.keySet().iterator()
  7.                 while(itr.hasNext()) {
  8.                         Object obj = itr.next();
  9.                         System.out.println(obj.toString());
  10.                 }
复制代码

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1 赞一个!

查看全部评分

回复 使用道具 举报
彭春晓 来自手机 中级黑马 2015-2-27 19:31:06
藤椅
哈哈。仔细看。
回复 使用道具 举报
这是高级for循环。1.5新特性里的内容,学下去你就知道了
回复 使用道具 举报
新特性,增强for循环,方便遍历集合。相当于迭代器
回复 使用道具 举报
JDK1.5以后的新特性:foreach循环:格式为for(变量类型  变量名称 :数组或集合),app.keySet()执行后返回一个SET
回复 使用道具 举报
for循环的新用法,比较简洁
回复 使用道具 举报
这个就是for循环    很简单的    Object  就是类型    obj就是变量   app.keySet()就是遍历的集合
回复 使用道具 举报
这个就是for循环    很简单的    Object  就是类型    obj就是变量   app.keySet()就是遍历的集合
回复 使用道具 举报
这是一种高级for循环形式,app.KeySet();将一个键值对中键值key存入到一个set容器中,其本质还是一个set集合。所以等于在高级for循环中传入一个容器集合用于遍历。
这种for格式是for(数据类型 变量名:给定一个容器或集合){每次循环都会将集合中的元素传给你定义的变量,然后你对变量进行操作就行了},这种方式不好的地方是只能遍历,不能修改。所以要注意场合使用。
我写了一个简单的代码,跟你给的这句话本质相同
  1. import java.util.*;
  2. class Demo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 TreeSet<String> st = new TreeSet<String>();
  7.                
  8.                 for(String s:st)
  9.                 {
  10.                         String str = s;
  11.                         System.out.println(str);
  12.                 }
  13.         }
  14. }
复制代码

你可以好好思考一下,你给出的keySet获取的集合实质也是一个Set集合,所以本质相同。
回复 使用道具 举报
enjoy 中级黑马 2015-2-28 14:29:55
11#
学习了!!!
回复 使用道具 举报
这种for是jdk1.5的新特性,叫做增强for循环,Object obj用于接收每次遍历得到的值,app.keySet()是获取app集合中的键的Set集合
回复 使用道具 举报
只是一种书写格式,没啥意思,如果硬要有啥意思,就是说冒号前面是冒号后面里的一个元素
回复 使用道具 举报
都这麽厉害啊!:victory:
回复 使用道具 举报
这是java1.5后出现的,这是1.5的新特性,写法是:for (循环变量类型 循环变量名称 : 要被遍历的对象),优点是方便遍历,缺点是 不能进行其他操作
回复 使用道具 举报
  1. TreeMap<String, String> map = new TreeMap<>();
  2.                 map.put("1", "陈晓春");
  3.                 map.put("2", "大飞哥");
  4.                 map.put("3", "呵呵哦");
  5.                
  6.                
  7.                 Set<String> keySet = map.keySet();
  8.                 for (String n : keySet) {
  9.                         System.out.println("键:" + n + "值:" + map.get(n));
  10.                 }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马