首页 > 其他分享 >stream流中的filter优雅写法

stream流中的filter优雅写法

时间:2024-05-20 17:56:42浏览次数:22  
标签:return stream resourceDetail1 流中 param filter static

1.定义工厂类

  1. 内部集成静态方法,返回Predicate 的接口
  2. 如果是stream流中遍历的对象,不需要定义到方法的参数签名那
static class ResourceDetailPredicates {
        public static Predicate<ResourceDetail> wareNameFilter() {
            return resourceDetail1 -> {
                if (resourceDetail1.getAppCnName().contains("关闭")){
                    return false;
                }
                if (resourceDetail1.getAppCnName().contains("禁用")){
                    return false;
                }
                if (resourceDetail1.getAppCnName().contains("关仓")){
                    return false;
                }
                return true;
            };
        }

        public static Predicate<ResourceDetail> platformFilter(ScanObjParam param) {
            return resourceDetail1 -> {
                if(CollectionUtils.isEmpty(param.getPlatforms())){
                    return true;
                }else {
                    return param.getPlatforms().contains(resourceDetail1.getAppPlatform());
                }
            };
        }

        public static Predicate<ResourceDetail> envFilter(ScanObjParam param) {
            return resourceDetail1 -> {
                if(StringUtils.isBlank(param.getEnv())){
                    return true;
                }else {
                    return param.getEnv().equalsIgnoreCase(resourceDetail1.getEnvType());
                }
            };
        }
    }

2.使用工厂类

List<ResourceDetail> resourceDetailList = resourceDetails.stream()
    .filter(ResourceDetailPredicates.platformFilter(param))
    .filter(ResourceDetailPredicates.envFilter(param))
    .filter(ResourceDetailPredicates.wareNameFilter())
    .collect(Collectors.toList());

标签:return,stream,resourceDetail1,流中,param,filter,static
From: https://www.cnblogs.com/PythonOrg/p/18202529

相关文章

  • Spring Boot —— Filter 过滤器
    目标实现一个自定义过滤器,在所有请求进来时输出点儿信息实现过滤器实现一个自定义过滤器,在所有请求进行业务处理前,在控制台输出请求Id和请求Url@Configuration@EnableWebMvcpublicclassWebConfiguration{publicstaticclassMyFilterimplementsFilter{......
  • Centos 无法使用yum 错误:Failed to download metadata for repo ‘AppStream’: Canno
    大家都知道Centos8于2021年年底停止了服务,大家再在使用yum源安装时候,出现下面错误“错误:Failedtodownloadmetadataforrepo‘AppStream’:Cannotprepareinternalmirrorlist:NoURLsinmirrorlist”1、进入yum的repos目录 复制cd/etc/yum.repos.d/ ......
  • Asp-Net-Core开发笔记:使用ActionFilterAttribute实现非侵入式的参数校验
    前言在现代应用开发中,确保API的安全性和可靠性至关重要。面向切面编程(AOP)通过将横切关注点(如验证、日志记录、异常处理)与核心业务逻辑分离,极大地提升了代码的模块化和可维护性。在ASP.NETCore中,利用ActionFilterAttribute可以方便地实现AOP的理念,能够以简洁、高效的方式进行自......
  • .Net6 web API (AOP理解--ResourceFilter)
    前沿Aop(AspectorientProgramming),面向切面编程,作为面向对象编程的一种补充,可以在不破坏之前的封装为基础动态增加一些功能;从而让系统更具备扩展性:增加一个缓存功能增加一个日志功能既希望不要违背开闭原则,也希望能够增加新的工能在之前的业务逻辑之前增加了逻辑,在之前......
  • hive写入star,csv格式的streamload-简单版
    hive写入star,csv格式的streamload注意字符串中的转移字符直接拼接\n而要显示\\是非转义字符publicclassGcyDataTrans{privatestaticStringSTARROCKS_HOST="IP";privatestaticStringSTARROCKS_HTTP_PORT="8030";privatestaticStringSTARROCKS_DB......
  • 蓝桥杯-错误票据(两种写法stringstream和扣字符)
    某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能......
  • Linksys MAX-STREAM AC2600 / Linksys EA8100 固件资源整合分享
    注意:这款路由默认地址为192.168.10.1初始化时选手动安装!!!官方固件https://www.linksys.com/support-article?articleNum=49022升级教程:https://linksys-sh.com/home-ea8100/firmware-update-ea8100(适用于官方固件和Openwrt固件)转存V1FirmwareforStarHub(StarHub......
  • 解释一下这两行 "pub": "pnpm --filter \"./packages/*\" run pub", "pub:b
    F:\learn-front\code-inspector\package.json这两行命令是用于在JavaScript项目中发布(publish)软件包到npm仓库的脚本定义,常见于使用pnpm作为包管理器的Monorepo(单仓库多项目)结构的项目中。这里具体解释一下每部分的含义:pub:这是一个npm脚本的别名,当在命令行中执行npmrunp......
  • 从零手写实现 tomcat-11-filter 过滤器
    创作缘由平时使用tomcat等web服务器不可谓不多,但是一直一知半解。于是想着自己实现一个简单版本,学习一下tomcat的精髓。系列教程从零手写实现apacheTomcat-01-入门介绍从零手写实现apacheTomcat-02-web.xml入门详细介绍从零手写实现tomcat-03-基本的socket实......
  • 流量特征提取工具NFStream
    目录前言NFStreamNFStreamerPandasDataframe转换CSV文件转换NFStream特征提取事后统计流特征提取早期统计流特征提取应用层可见性特征提取系统的可见性前言之前介绍了关于stratum协议挖矿流量的一些内容,今天来介绍一下一款好用的流量特征提取工具NFStream,它可以很好的帮助我们......