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

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

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

相关推荐
xianrenli383 分钟前
android特许权限调试
android
什码情况28 分钟前
星际篮球争霸赛/MVP争夺战 - 华为OD机试真题(A卷、Java题解)
java·数据结构·算法·华为od·面试·机试
AA-代码批发V哥33 分钟前
正则表达式: 从基础到进阶的语法指南
java·开发语言·javascript·python·正则表达式
字节高级特工37 分钟前
【C++】”如虎添翼“:模板初阶
java·c语言·前端·javascript·c++·学习·算法
晴天下小雨o41 分钟前
排序算法总结
java·算法·排序算法
曼岛_44 分钟前
[Java实战]Spring Boot 整合 Redis(十八)
java·spring boot·redis
向哆哆1 小时前
Netty在Java网络编程中的应用:实现高性能的异步通信
java·网络·php
程序员爱钓鱼1 小时前
循环语句:for、range -《Go语言实战指南》
java·数据结构·算法
wowocpp1 小时前
Java项目层级介绍 java 层级 层次
java
码上飞扬2 小时前
Java大师成长计划之第20天:Spring Framework基础
java·开发语言