首页 > 编程语言 >java8 Optional使用 stream filter多级过滤

java8 Optional使用 stream filter多级过滤

时间:2023-03-14 15:55:05浏览次数:44  
标签:String stream orderType filter Integer model Optional public

java8 Optional使用 stream filter多级过滤

package com.example.core.mydemo.java8;


public class MyModel {
    private String couponCode;
    private Integer orderType;
    private String orderNo;
    private String frameNo;
    private Integer couponStatus = 0;  //默认

    public Integer getCouponStatus() {
        return couponStatus;
    }

    public void setCouponStatus(Integer couponStatus) {
        this.couponStatus = couponStatus;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getFrameNo() {
        return frameNo;
    }

    public void setFrameNo(String frameNo) {
        this.frameNo = frameNo;
    }

    public String getCouponCode() {
        return couponCode;
    }

    public void setCouponCode(String couponCode) {
        this.couponCode = couponCode;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }
}


package com.example.core.mydemo.java8;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

public class ListTest {
    public static void main(String[] args) {

        List<MyModel> list = new ArrayList();
        MyModel model = new MyModel();
        model.setCouponCode("111111");
        model.setCouponStatus(1);
        model.setOrderType(1);
        list.add(model);

        model = new MyModel();
        model.setCouponCode("22222");
        model.setCouponStatus(0);
        model.setOrderType(2);
        list.add(model);

        int orderType = 1;

        Optional<MyModel> optional = Optional.ofNullable(list).orElseGet(ArrayList::new).stream().filter(x -> x.getOrderType() == orderType).filter(x ->x.getCouponStatus() == 0).findFirst();
        MyModel model3 = optional.orElse(null);
        if(model3 != null) {
            String couponId = model3.getCouponCode();
            //关联订单号
            System.out.println("couponId="+couponId);
        }else{
            System.out.println("未找到未使用的记录");
        }
    }
}

 

标签:String,stream,orderType,filter,Integer,model,Optional,public
From: https://www.cnblogs.com/oktokeep/p/17215209.html

相关文章

  • Filter+Listener
    11.Filter(重点)Filter:过滤器,用来过滤网站的数据;处理中文乱码登录验证….Filter开发步骤:导包编写过滤器导包不要错;<?xmlversion="1.0"encoding="UTF-8"......
  • Java FileOutputStream IO 拒绝访问
    很无聊的bug,也是对IO使用不熟悉导致本意是将文件写入这个目录下FileOutputStreamfos=newFileOutputStream("D:/test");然后报拒绝访问的错误,应该这么写FileOut......
  • 【Filter pruning】Learning Efficient Convolutional Networks through Network Slim
    原始题目LearningEfficientConvolutionalNetworksthroughNetworkSlimming中文名称通过网络瘦身(Slimming)学习高效卷积网络发表时间2017年8月22日......
  • Redis Stream Commands 命令学习-1 XADD XRANGE XREVRANGE
    概况ARedisstreamisadatastructurethatactslikeanappend-onlylog.Youcanusestreamstorecordandsimultaneouslysyndicateeventsinrealtime.Exam......
  • Day08-Filter&Listener笔记
    0.Servlet:属于一个接口,动态资源,如果浏览器想访问服务器中的动态资源,那么需要自定义类直接或者间接实现Servlet接口1)自定义类实现Servlet接口===自定义类中要实现Se......
  • 转换流_InputStreamWriter&OutputStreamReader
    publicstaticvoidmain(String[]args)throwsIOException{OutputStreamWriterosw=newOutputStreamWriter(newFileOutputStream("a.txt"),Charset.fo......
  • filter过滤器、事务管理、listener监听器相关知识
    资料来源于:B站尚硅谷JavaWeb教程(全新技术栈,全程实战),本人才疏学浅,记录笔记以供日后回顾由于是多个视频内容混合在一起,因此只放了第一个链接视频链接知识点1.......
  • lambda表达式和Stream流
    简介Lambda表达式虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。(本人建议......
  • Kafka 云原生管控平台 Know Streaming
    1、Docker安装参考:https://www.cnblogs.com/a120608yby/p/9883175.html2、DockerCompose安装参考:https://www.cnblogs.com/a120608yby/p/14582853.html3、服务......
  • jquery遍历元素children、find、parent、parents、parentsUntil、next、prev、sibling
    ​​​​全栈工程师开发手册(作者:栾鹏)​​jquery系列教程2-DOM操作全解​​jquery遍历元素jquery元素的函数包括children、find、parent、parents、parentsUntil、next......