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

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

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

相关推荐
鸿业远图科技2 分钟前
新疆乡镇界面图层arcgis格式shp数据有乡镇名称和编码2020年wgs84坐标无偏移数据内容测评
android·arcgis
zlt20008 分钟前
Spring Cloud Alibaba AI 入门与实践
java·spring cloud·spring ai
customer0818 分钟前
【开源免费】基于SpringBoot+Vue.JS作业管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源
Evaporator Core27 分钟前
SQLite 实际案例研究与创新应用
java·oracle·sqlite
zeijiershuai1 小时前
Java jdk8新特性:Stream 流
java·开发语言
筑梦之人1 小时前
Dynamic-Datasource 文档
java
晚安~~1 小时前
共享充电宝系统|Java|SSM|VUE| 前后端分离
java·开发语言·tomcat·maven
找了一圈尾巴1 小时前
Wend看源码-Java-Arrays 工具集学习
java·开发语言·学习
HelloZheQ1 小时前
Java与AI:构建智能应用的强大组合
java·开发语言·人工智能
S-X-S1 小时前
八万字Java面试高频题目汇总(冲刺春招!)
java·开发语言·面试