本文共 2060 字,大约阅读时间需要 6 分钟。
list.forEach 用 return 跳出本次循环(作用类似 for 循环的 continue),无跳出循环功能(即无 for 循环的 break 功能)
package com.me.address;import java.util.Arrays;import java.util.List;/** * @author yanyg * @since 2020/9/1 */public class ListforEachTest { private static final String DEFAULT_STR = "7777"; public static void main(String[] args) { Listlist = Arrays.asList("6666", "7777", "8888", "9999"); list.forEach(t -> { if (t.equals(DEFAULT_STR)) { // 跳槽本次循环,继续下一次循环,类似 continue return; } System.out.println(t); }); System.out.println("====================================="); for (String t : list) { if (t.equals(DEFAULT_STR)) { // 跳槽本次循环,继续下一次循环 continue; } System.out.println(t); } System.out.println("====================================="); for (String t : list) { if (t.equals(DEFAULT_STR)) { // 跳出循环 break; } System.out.println(t); } }}
666688889999=====================================666688889999=====================================6666
public static void main(String[] args) { Listlist = Arrays.asList("6666", "7777", "8888", "9999"); /** * 每次都执行一次,flag 是最后一次匹配的值 * 可以设置变量存储想要的 true 或 false */ boolean flag = list.stream().anyMatch(t -> { System.out.println("================"); if ("777".equals(t)) { return true; } else { return false; } }); System.out.println("flag=" + flag); System.out.println("+++++++++++++++++++++++++"); List strs = Arrays.asList("a", "a", "a", "a", "b"); // 判断的条件里,任意一个元素成功,返回true boolean aa = strs.stream().anyMatch(str -> str.equals("a")); System.out.println("aa=" + aa);}
================================================================flag=false+++++++++++++++++++++++++aa=true
转载地址:http://kfvli.baihongyu.com/