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

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

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

相关推荐
plainGeekDev7 分钟前
RecyclerView.Adapter → ListAdapter
java·kotlin·gradle
J2虾虾18 分钟前
Spring AI Alibaba - 人工介入(Human-in-the-Loop)
java·人工智能·spring
Old Uncle Tom38 分钟前
Harness Engineering 综述
java·开发语言·数据库
星原望野41 分钟前
JAVA:策略模式的实战使用
java·开发语言·策略模式
LJianK142 分钟前
java多态
java·开发语言·python
2401_865721331 小时前
御网杯初赛2026
android
z落落1 小时前
C# 构造函数(无参/有参/重载/this)+析构函数(终结器)|GC 垃圾回收
java·开发语言·c#
武子康1 小时前
Java-12 深入浅出 MyBatis 二级缓存详解:跨 SqlSession 共享与失效机制
java·后端
考虑考虑1 小时前
JDK9中的Set.of()使用注意
java·后端·java ee
plainGeekDev1 小时前
findViewById → ViewBinding
java·kotlin·gradle