1. 程式人生 > >java8 foreach無法使用break,continue,使用return跳過當前迴圈

java8 foreach無法使用break,continue,使用return跳過當前迴圈

使用foreach()處理集合時不能使用break和continue這兩個方法,也就是說不能按照普通的for迴圈遍歷集合時那樣根據條件來中止遍歷,而如果要實現在普通for迴圈中的效果時,可以使用return來達到,也就是說如果你在一個方法的lambda表示式中使用return時,這個方法是不會返回的,而只是執行下一次遍歷

public void t1(){
    List<String> list = Collections.EMPTY_LIST;
    list = Arrays.asList("awg","weg","wweg","wegwe");
    list.forEach(System.out::println);
    list.forEach(str -> {
        if("awg".equals(str)){
            return;
        }
        System.out.println(str);
    });
}

執行結果:

awg
weg
wweg
wegwe
weg
wweg

wegwe

另外lambda的foreach執行效率很低,不如增強for迴圈