Java的list中状态属性相同返回true的实现方案

文章目录

项目背景

在项目中会遇到list中多个状态判断,状态值相等时,总体返回为true。

方案一、for循环实现

实现思路

遍历list,当出现不一致时,直接跳出循环,实现代码如下所示。

java 复制代码
private static boolean forSameResult(List<Order> orderList){
    boolean resultFlag = true;
    for(Order order : orderList){
        if(!"enable".equals(order.getStstus())){
            resultFlag = false;
            break;
        }
    }
    return resultFlag;
}

调用代码如下所示。

java 复制代码
    public static void main(String[] args){
        List<Order> orderList = new ArrayList<>();
        Order orderOne = new Order();
        orderOne.setOrderNo("111111");
        orderOne.setStstus("enable");
        orderList.add(orderOne);
        Order orderTwo = new Order();
        orderTwo.setOrderNo("222222");
        orderTwo.setStstus("enable");
        orderList.add(orderTwo);
        boolean oneSameResult = forSameResult(orderList);
        System.out.println("转换出来的oneSameResult为:"+oneSameResult);
    }

执行结果如下所示。

若两个不一致,执行结果如下图所示。

方案二、stream实现

实现思路

可使用Java8的特性,即 stream 的 allMatch 方法实现,本质是遍历判断。

java 复制代码
private static boolean streamResult(List<Order> orderList){
   boolean resultFlag = orderList.stream().allMatch(order -> "enable".equals(order.getStstus()));
   System.out.println("转换出来的resultFlag为:"+resultFlag);
   return resultFlag;
}

调用代码如下所示。

java 复制代码
    public static void main(String[] args){
        List<Order> orderList = new ArrayList<>();
        Order orderOne = new Order();
        orderOne.setOrderNo("111111");
        orderOne.setStstus("enable");
        orderList.add(orderOne);
        Order orderTwo = new Order();
        orderTwo.setOrderNo("222222");
        orderTwo.setStstus("enable");
        orderList.add(orderTwo);
        boolean twoSameResult = streamSameResult(orderList);
        System.out.println("转换出来的twoSameResult为:"+twoSameResult);
    }

执行代码,控制台返回如下图所示。

若两个不一致,执行结果如下图所示。

相关推荐
稚辉君.MCA_P8_Java4 分钟前
Gemini永久会员 Java 返回最长有效子串长度
java·数据结构·后端·算法
zhimingwen12 分钟前
通过ADB获取Android应用的SHA1签名
android·adb
我超级能吃的12 分钟前
线程池核心原理及使用
java·开发语言
2501_9160074715 分钟前
深入理解 iOS 文件管理体系,从沙盒结构到多工具协同的工程化文件管理实践
android·ios·小程序·https·uni-app·iphone·webview
00后程序员张15 分钟前
iOS 性能检测工具深度解析 多工具协同下的全维度性能检测体系建设
android·ios·小程序·https·uni-app·iphone·webview
路边草随风17 分钟前
java 实现 flink 读 kafka 写 delta
java·大数据·flink·kafka
逆风局?17 分钟前
后端Web实战(部门管理)——日志技术
java·前端
小马爱打代码21 分钟前
Spring AI:ChatClient实现对话效果
java·人工智能·spring
无敌最俊朗@26 分钟前
C++ 内存管理与编译原理 (面试复习2)
java·开发语言·jvm
赴前尘30 分钟前
docker 配置ipv6地址
java·docker·容器