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);
    }

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

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

相关推荐
前行的小黑炭3 分钟前
Android :为APK注入“脂肪”,论Android垃圾代码在安全加固中的作用
android·kotlin
我真的是大笨蛋9 分钟前
K8S-Pod(上)
java·云原生·容器·kubernetes
纪元A梦33 分钟前
贪心算法应用:数字孪生同步问题详解
java·算法·贪心算法
Micrle_0071 小时前
java分布式场景怎么实现一个高效的 读-写锁
java·分布式
海上生明月丿1 小时前
微服务01
java·spring boot·微服务
帅得不敢出门1 小时前
Docker安装Ubuntu搭建Android SDK编译环境
android·ubuntu·docker
tangweiguo030519871 小时前
Android Kotlin 动态注册 Broadcast 的完整封装方案
android·kotlin
fatiaozhang95271 小时前
浪潮CD1000-移动云电脑-RK3528芯片-2+32G-安卓9-2种开启ADB ROOT刷机教程方法
android·网络·adb·电脑·电视盒子·刷机固件·机顶盒刷机
coooliang2 小时前
【鸿蒙 NEXT】V1迁移V2状态管理
java·前端·harmonyos