Java Stream两种list判断字符串是否存在方案

这里写自定义目录标题

背景

在项目开发中,经常遇到筛选list中是否包含某个子字符串,有多种方式,本篇主要介绍stream流的filter和anyMatch两种方案,记录下来,方便备查。

初始化

处理话bean

java 复制代码
@Data
public class OrderInfo implements Serializable {
    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 订单数量
     */
    private int orderNum;

    /**
     * 订单金额-分
     */
    private Long orderAmountL;

    /**
     * 支付方式:ALIPAY-支付宝,WECHATPAY-微信支付
     */
    private String payType;
}

构造list

java 复制代码
public static void main(String[] args) {
    List<OrderInfo> orderInfoList = new ArrayList<>();
    OrderInfo orderInfo = new OrderInfo();
    orderInfo.setPayType("ALIPAY");
    orderInfoList.add(orderInfo);;
}

方法一、filter过滤

使用stream流的filter方法,

java 复制代码
public static void main(String[] args) {
    List<OrderInfo> orderInfoList = new ArrayList<>();
    OrderInfo orderInfo = new OrderInfo();
    orderInfo.setPayType("ALIPAY");
    orderInfoList.add(orderInfo);
    boolean filterFlag = StreamFilterList(orderInfoList);
    System.out.println("StreamFiler遍历结果为:"+ filterFlag );
}

private static boolean StreamFilterList(List<OrderInfo> orderInfoList){
    boolean filterFlag = orderInfoList.stream().filter(order->order.getPayType().equals("ALIPAY")).findAny().isPresent();
    System.out.println("StreamFilterList遍历结果为:"+ filterFlag );
    return filterFlag;
}

执行结果如下所示。

方法二、anyMatch匹配

Stream流的anyMatch过滤方法,只要在list中找到满足条件的字符串即返回成功。
allMatch 过滤方法,顾名思义,list中所有记录均能找到满足条件的字符串才返回成功。

java 复制代码
public static void main(String[] args) {
    List<OrderInfo> orderInfoList = new ArrayList<>();
    OrderInfo orderInfo = new OrderInfo();
    orderInfo.setPayType("ALIPAY");
    orderInfoList.add(orderInfo);
    boolean filterFlag = StreamAnyMatchList(orderInfoList);
    System.out.println("StreamFiler遍历结果为:"+ filterFlag );
}

private static boolean StreamAnyMatchList(List<OrderInfo> orderInfoList){
    boolean anyMatchFlag = orderInfoList.stream()
            .anyMatch(order->order.getPayType().equals("ALIPAY"));
    System.out.println("StreamAnyMatch遍历结果为:"+ anyMatchFlag );
    return anyMatchFlag;
}

执行结果如下所示。

相关推荐
小信丶6 分钟前
Spring 6 的 @HttpExchange 注解:声明式 HTTP 客户端的现代化利器
java·spring·http
野犬寒鸦2 小时前
多级缓存架构:性能与数据一致性的平衡处理(原理及优势详解+项目实战)
java·服务器·redis·后端·缓存
帧栈5 小时前
开发避坑指南(58):Java Stream 按List元素属性分组实战指南
java
无敌最俊朗@5 小时前
C++ 序列容器深度解析:vector、deque 与 list
开发语言·数据结构·数据库·c++·qt·list
Da Da 泓5 小时前
LinkedList模拟实现
java·开发语言·数据结构·学习·算法
海琴烟Sunshine5 小时前
Leetcode 14. 最长公共前缀
java·服务器·leetcode
城管不管5 小时前
Lambda
java
龙茶清欢6 小时前
5、urbane-commerce 微服务统一依赖版本管理规范
java·运维·微服务
海琴烟Sunshine8 小时前
Leetcode 26. 删除有序数组中的重复项
java·算法·leetcode
RoboWizard8 小时前
移动固态硬盘连接手机无法读取是什么原因?
java·spring·智能手机·电脑·金士顿