for each

增加型for循环
又称为:新循环 是在JDK1.5之后推出的特性,作用是遍历集合或数组
语法:
for( 接收数组中元素 : 数组或集合实例)
如String[] array = {“one”,”two”};
for(String s:array) 即表示用遍历数组的每个元素,s来接收array数组中的每一个元素

数组例子
public class Demo {

public static void main(String[] args) {
    String[] array = {"one","two","three","four"};

    //一般的for循环
    System.out.println("一般的for循环用法");
    for(int i = 0; i<array.length;i++){
        System.out.println(array[i]);
    }
    //for each循环用法
    System.out.println("for each 增强型循环用法");
    for(String s : array){
        System.out.println(s);
    }


}

}

运行结果
一般的for循环用法
one
two
three
four
for each 增强型循环用法
one
two
three
four

集合例子
注意:集合 for each 的写法,要用Object 去接收

import java.util.ArrayList;
import java.util.Collection;

public class Demo {

public static void main(String[] args) {
    Collection c = new ArrayList();
    c.add("one");
    c.add("two");
    c.add("three");
    c.add("four");

            for(Object o :c){    //用Object 去接收
        System.out.println(o);
    }
}

}
运行结果:
one
two
three
four

注意点:

新循环并非新的语法,虚拟机并不支持新循环语法
新循环是编译器认可的,当编译器编译源程序时发现使用新循环遍历集合时,会将代码改为使用迭代器遍历集合
新循环遍历数组时,会将代码改为一般循环
所以使用新循环遍历集合时不要通过集合的方法增删元素,否则可能发生异常
import java.util.ArrayList;
import java.util.Collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Demo {

public static void main(String[] args) {
    Collection c = new ArrayList();
    c.add("one");
    c.add("#");
    c.add("two");
    c.add("three");
    c.add("four");

    /*for(Object o :c){*/
    Iterator it = c.iterator();
    while(it.hasNext()){
        Object o = it.next();
    //在用for each循环时,编译器自动for each改变为迭代器遍历   
        String str = (String)o;
        System.out.println(str);
        if("#".equals(str)){
            c.remove(str);
        }
    }
}

}
运行结果:
one
#
Exception in thread “main” java.util.ConcurrentModificationException
at java.util.AbstractList Itr.checkForComodification(AbstractList.java:372)atjava.util.AbstractList Itr.next(AbstractList.java:343)
at Demo.main(Demo.java:15)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值