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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘晓康 中级黑马   /  2012-4-6 23:24  /  3106 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

for(  arg:args)
高级for循环   替代  迭代器 只能取出元素  不能对元素进行 判断
for(取出元素的type      自定义变量名 : 需要迭代的 数组或集合)
{
        执行语句
}
回复 使用道具 举报
我在视频中看到老师写了一个  for(  arg:args)     这是什么意思呀?又怎么用呢?当时看视频的时候没太在意,谁说说呀!

9 个回复

倒序浏览
本帖最后由 李南江 于 2012-4-6 23:29 编辑

增强FOR循环··
示例:获取Collection集合中的元素方法:

1,迭代器:
ArrayList<String> al = new ArrayList<String>();
Iterator<String> it = al.iterator();
while(it.hasNext()){
        String s = it.Next();
        System.out.println(s);
}


2,增强for循环:
ArrayList<String> al = new ArrayList<String>();
for(String  s : al){
        System.out.println(s)

}

增强for循环只能用于数组和实现了Iterable接口的集合类,所以不是所有集合类都可以使用增强for循环

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
增强for循环,用于数组或集合中迭代器的遍历,和for(int i=0;i<xx;i++)类似,但是增强for在遍历时不能修改元素
回复 使用道具 举报
是高级for,迭代器的简写。

高级for循环:
格式:
for(数据类型 变量名:被遍历变量的集合(collection)或者数组)
{

}

for(String s:al)//只能对集合中的元素取出 不可以修改

{
System.out.prinlnt(s);//假如s="55";在这里不可以复制   不可以修改元素的值


}

这两个方法的结果一样的 for高级就是迭代器的简化

Iterator<String> it=al.iterator();
while(it.hasNext())
{
        System.out.prinlnt(it.next());

}。

高级for对集合进行遍历: 只能获取元素,不可以修改元素

迭代器出来遍历,还可以进行remove集合中元素的动作

传统for和高级for的区别:高级for有一个局限性,必须有被遍历的目标

map不支持迭代器

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
高级for循环。。。很简单的,就是agr不停的等于args集合中的元素。。。
回复 使用道具 举报
是jdk 1.5 的一个新特性,语法是for (Type value : array) { expression value;}  优点主要体现在集合中  ::
比如:Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
  String str = it.next();
  System.out.println(str);
}
for循环遍历:
for (String str : set) {
      System.out.println(str);
}
这样比原来简单多了  ,是不是?  
它也有缺点:对于数组,不能方便的访问下标值;
对于集合,与使用Interator相比,不能方便的删除集合中的内容(在内部也是调用Interator).
   

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
大家说的都很对,补充一点,在实际的编程中,使用增强for循环的之前,先做一下对迭代集合对象的空值判断,否则会报NullPointerException,
if(args != null)//集合不为null的时候才做循环
for(  arg:args){

}

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
就是从数组的0开始读到数组的末尾,简洁方便美观,缺点,不能得到数组中的某一个元素的位置,数组中不能为空,不能实现数组元素的删除
回复 使用道具 举报
pray 高级黑马 2014-4-26 03:38:51
10#
是人就想看的帖  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马