最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

在Java8中foreach()不能break,如果需要continue时,怎么办

业界 admin 5浏览 0评论

结论:
在Java8的foreach()中不能break,如果需要continue时,可以使用return。lambda表达式中使用return时,这个方法是不会返回的,而只是执行下一次遍历。

测试代码:

  List<String> list = Arrays.asList("12", "14345", "16", "abch", "sdfhrthj", "mvkd");
        list.stream().forEach(e ->{
            if(e.length() >= 3){
                return;
            }
            System.out.println(e);
        });


可以看出return起到的作用和continue是相同的。

原因:
Stack Overflow中的答案,主要是说foreach()不是一个循环,不是设计为可以用break以及continue来中止的操作。

结论:
在Java8的foreach()中不能break,如果需要continue时,可以使用return。lambda表达式中使用return时,这个方法是不会返回的,而只是执行下一次遍历。

测试代码:

  List<String> list = Arrays.asList("12", "14345", "16", "abch", "sdfhrthj", "mvkd");
        list.stream().forEach(e ->{
            if(e.length() >= 3){
                return;
            }
            System.out.println(e);
        });


可以看出return起到的作用和continue是相同的。

原因:
Stack Overflow中的答案,主要是说foreach()不是一个循环,不是设计为可以用break以及continue来中止的操作。

发布评论

评论列表 (0)

  1. 暂无评论