文章目录
- 项目背景
- 方案一、for循环实现
- 实现思路
- 方案二、stream实现
- 实现思路
项目背景
在项目中会遇到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);}
执行代码,控制台返回如下图所示。