黑马程序员技术交流社区

标题: 毕向东老师在第十八天的视频里面的这句话是什么意思?? [打印本页]

作者: 大奔    时间: 2015-2-27 16:17
标题: 毕向东老师在第十八天的视频里面的这句话是什么意思??
for(Object obj : app.keySet())
这句for循环里面的 : 是什么意思啊??

作者: Hsidar    时间: 2015-2-27 16:36
这是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.                 }
复制代码

作者: 彭春晓    时间: 2015-2-27 19:31
哈哈。仔细看。
作者: Afridoce    时间: 2015-2-27 22:16
这是高级for循环。1.5新特性里的内容,学下去你就知道了
作者: 正在输入...    时间: 2015-2-27 23:09
新特性,增强for循环,方便遍历集合。相当于迭代器
作者: ㏒假™面具    时间: 2015-2-27 23:24
JDK1.5以后的新特性:foreach循环:格式为for(变量类型  变量名称 :数组或集合),app.keySet()执行后返回一个SET
作者: 竹叶君子    时间: 2015-2-28 09:37
for循环的新用法,比较简洁
作者: qq245425070    时间: 2015-2-28 09:42
这个就是for循环    很简单的    Object  就是类型    obj就是变量   app.keySet()就是遍历的集合
作者: qq245425070    时间: 2015-2-28 09:48
这个就是for循环    很简单的    Object  就是类型    obj就是变量   app.keySet()就是遍历的集合
作者: 奋斗小青年    时间: 2015-2-28 11:06
这是一种高级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
学习了!!!
作者: 小棽    时间: 2015-3-3 10:20
这种for是jdk1.5的新特性,叫做增强for循环,Object obj用于接收每次遍历得到的值,app.keySet()是获取app集合中的键的Set集合
作者: alvis2015    时间: 2015-3-3 10:49
只是一种书写格式,没啥意思,如果硬要有啥意思,就是说冒号前面是冒号后面里的一个元素
作者: MR.BLACK    时间: 2015-3-3 18:11
都这麽厉害啊!:victory:
作者: 文浩    时间: 2015-3-4 15:15
这是java1.5后出现的,这是1.5的新特性,写法是:for (循环变量类型 循环变量名称 : 要被遍历的对象),优点是方便遍历,缺点是 不能进行其他操作
作者: ZZGFF    时间: 2015-3-4 15:41
  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.                 }
复制代码





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