美文网首页
如何跳出Lambda表达式forEach循环

如何跳出Lambda表达式forEach循环

作者: wyn_做自己 | 来源:发表于2023-03-26 09:48 被阅读0次

今日份鸡汤:
不要沮丧,不必惊慌,做努力爬的蜗牛或坚持飞的笨鸟,我们试着长大,一路跌跌撞撞,哪怕遍体鳞伤~

今天在用foreach循环的时候有一个逻辑判断需要跳出循环,但是lambda表达式不能像for一样用break也不能用continue,只有return可以用,但是用了之后发现,lambda表达式foreach的return和普通foreach循环的continue效果是一样的,
代码如下:

public class ForEachDemo {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        list.stream().forEach(i -> {
            if (i == 3) return;
            System.out.println(i);
        });
    }
}

执行结果:

image.png

解决办法:两种方法:

方法一:可以使用anyMatch()方法,anyMatch()里接收一个返回值为boolean类型的表达式,只要返回true就会终止循环,这样可以将业务逻辑写在返回判断结果前。
代码如下:

public class ForEachDemo {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);

        list.stream().anyMatch(i -> {
          if (i == 3) return true;
            System.out.println(i);
          return false;
        });
    }
}

执行结果:

image.png

方法二:可以使用filter()方法,思路是一样的,其中findAny表示只要找到满足的条件时停止。
代码如下:

public class ForEachDemo {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);

        list.stream().filter(i -> {
          if (i == 3) return true;
            System.out.println(i);
          return false;
        }).findAny();
    }
}

执行结果:

image.png

相关文章

  • Kotlin在forEach中如何跳出循环和跳出当前循环体

    Kotlin在forEach中如何跳出循环和跳出当前循环体 数组的forEach中直接retrun 那么输出结果是...

  • for 和 forEach怎么跳出循环

    for continue 跳出本次循环,执行下一个循环 break 跳出整个循环 forEach forEach ...

  • for of, for in, forEach比较

    for of 、for in、forEach比较 forEach forEach无法中途跳出forEach循环,b...

  • js 数组知识

    forEach 循环跳出 我们都知道for循环里要跳出整个循环是使用break,但在数组中用forEach循环如要...

  • Kotlin 视频笔记二

    (2018.7.20) 函数定义 循环 for in 高级循环 forEach 跳出循环 支持:break (跳出...

  • JavaScript使用笔记

    1.如何从forEach()方法中跳出循环?iteratingChildrens = (children: any...

  • JS与其他遍历语法的比较

    一. for循环 缺点: 写法比较麻烦 二. forEach 缺点: 无法中途跳出forEach循环,break命...

  • js循环

    for循环 forEach 但是forEach不能中止或者中途跳出循环,即不能使用break,continue这些...

  • forEach跳出循环

    for循环可以用break或return跳出循环,forEach不能jquery的$.each也不能用break,...

  • forEach跳出循环

    在for循环中,跳出循环有两种模式: break、continue;但是在forEach中,使用break或者co...

网友评论

      本文标题:如何跳出Lambda表达式forEach循环

      本文链接:https://www.haomeiwen.com/subject/iysordtx.html