多值判断、包含的简写EqualUtil工具类

DDPM代码详细解读(2):Unet结构、正向和逆向过程、IS和FID测试、EMA优化 Diffusion Models专栏文章汇总:入门与实战 前言:大部分DDPM相关的论文代码都是基于《Denoising Diffusion Probabilistic Models》和《Diffusion Models Beat GANs on Image Synthesis》贡献代码基础上小改动的。官方的DDPM是tensorflow TPU版本,暂时没有GPU的版本。上一篇文章介绍了数据集加载,超参数的含义、关键参数的计算方法等,这一篇重点解读一下网络结构。 目录 EMA优化 训练目标. 阅读详情

一、应用场景

有没有遇到过这样的代码:

if(a.equal(b) && a.equal(c) && ···){

}
或者
if(a.equal(b) || a.equal(c) || ···){

}
又或者
if(a.contains(b) && a.contains(c) && ···){
}

每次遇到一个值需要和多个值进行判断的时候,if里面就要写好多equal和&&,是否包含多个值时就要写多个contains。
代码重复,如果变量名很长经常换行也会导致可读性变差,所以写个工具类方便使用。

二、工具类代码

直接复制粘贴即可使用。

public class EqualUtil {

    /**
     * TODO 用于判断args的值是否和obj值相等,全部等即返回true。
     *
     * @param obj  被比较的值
     * @param args 比较的值
     * @return
     */
    public static boolean equalsAnd(Object obj, Object... args) {
        return equalsAnd(false, obj, args);
    }

    /**
     * TODO 用于判断args的值是否和obj值相等,有一个相等即返回true。
     *
     * @param obj  被比较的值
     * @param args 比较的值
     * @return
     */
    public static boolean equalOr(Object obj, Object... args) {
        return equalOr(false, obj, args);
    }

    /**
     * TODO 用于判断忽略大小写后,args的值是否和obj值相等,全部相等即返回true。
     *
     * @param obj  被比较的值
     * @param args 比较的值
     * @return
     */
    public static boolean equalsAndIgnore(String obj, String... args) {
        return equalsAnd(true, obj, args);
    }

    /**
     * TODO 用于判断忽略大小写后,args中的某个值是否和obj值相等,有一个相等即返回true。
     *
     * @param obj  被比较的值
     * @param args 比较的值
     * @return
     */
    public static boolean equalOrIgnore(String obj, String... args) {
        return equalOr(true, obj, args);
    }

    /**
     * TODO 用于判断是否包含args内所有参数。
     *
     * @param obj  被比较的值
     * @param args 比较的值
     * @return
     */
    public static boolean containAnd(String obj, String... args) {
        return containAnd(false, obj, args);
    }

    /**
     * TODO 用于判断是否包含args内某个参数。
     *
     * @param obj  被比较的值
     * @param args 比较的值
     * @return
     */
    public static boolean containOr(String obj, String... args) {
        return containOr(false, obj, args);
    }

    /**
     * TODO 用于判断是否包含args1内全部参数,但不包含args2内任何参数
     *
     * @param obj   被比较的值
     * @param args1 包含的参数
     * @param args2 不包含的参数
     * @return
     */
    public static boolean containOneNotTwo(String obj, String[] args1, String[] args2) {
        return containAnd(obj, args1) && !containOr(obj, args2);
    }

    /**
     * TODO 用于判断是否包含args1参数,但不包含args2参数
     *
     * @param obj   被比较的值
     * @param args1 包含的参数
     * @param args2 不包含的参数
     * @return
     */
    public static boolean containOneNotTwo(String obj, String args1, String args2) {
        return containOneNotTwo(obj, new String[]{args1}, new String[]{args2});
    }

    /**
     * TODO 忽略大小写,用于判断是否包含args1内全部参数,但不包含args2内任何参数
     *
     * @param obj   被比较的值
     * @param args1 包含的参数
     * @param args2 不包含的参数
     * @return
     */
    public static boolean containOneNotTwoIgnore(String obj, String[] args1, String[] args2) {
        return containAnd(true, obj, args1) && !containOr(true, obj, args2);
    }

    /**
     * TODO 忽略大小写,用于判断是否包含args1参数,但不包含args2参数
     *
     * @param obj   被比较的值
     * @param args1 包含的参数
     * @param args2 不包含的参数
     * @return
     */
    public static boolean containOneNotTwoIgnore(String obj, String args1, String args2) {
        return containOneNotTwoIgnore(obj, new String[]{args1}, new String[]{args2});
    }

    private static boolean equalsAnd(boolean ignore, Object obj, Object... args) {
        if (ignore && obj instanceof String) {
            for (Object arg : args) {
                if (!((String) arg).equalsIgnoreCase((String) obj))
                    return false;
            }
        } else {
            for (Object arg : args) {
                if (arg.hashCode() != obj.hashCode() || !arg.equals(obj))
                    return false;
            }
        }
        return true;
    }

    private static boolean equalOr(boolean ignore, Object obj, Object... args) {
        if (ignore && obj instanceof String) {
            for (Object arg : args) {
                if (((String) arg).equalsIgnoreCase((String) obj))
                    return true;
            }
        } else {
            for (Object arg : args) {
                if (arg.hashCode() == obj.hashCode() && arg.equals(obj))
                    return true;
            }
        }
        return false;
    }

    private static boolean containAnd(boolean ignore, String obj, String... args) {
        obj = ignore ? obj.toUpperCase() : obj;
        for (String arg : args) {
            arg = ignore ? arg.toUpperCase() : arg;
            if (!arg.contains(obj))
                return false;
        }
        return true;
    }

    private static boolean containOr(boolean ignore, String obj, String... args) {
        obj = ignore ? obj.toUpperCase() : obj;
        for (String arg : args) {
            arg = ignore ? arg.toUpperCase() : arg;
            if (arg.contains(obj))
                return true;
        }
        return false;
    }

}

三、使用说明

!!!所有方法的被比较值都是第一个参数!!!

String str1 = "a";
String str2 = "b";
String str3 = "a";
String str4 = "A";
EqualUtil.equalsAnd(str1,str2,str3);//结果是false,因为str2是b,此方法要求所有值和str1相等。
EqualUtil.equalsOr(str1,str2,str3);//结果是true,因为str3是a,此方法只要有一个相等即可。
EqualUtil.equalsAndIgnore(str1,str3,str4);//结果是true,此方法忽略大小写后所有值相同。
EqualUtil.equalsOrIgnore(str1,str2,str4);//结果是true,此方法忽略大小写且有一个值相同。
String str5 = "abc";
String str6 = "b";
String str7 = "c";
String str8 = "d";
EqualUtil.containAnd(str5,str6,str7,str8);//结果是false,此方法要求包含后面所有值。
EqualUtil.containOr(str5,str6,str7,str8);//结果是true,此方法要求包含其中一个值即可。
......
还有一些包含方法,例如containOneNotTwo,包含第一个参数,但不包含第二个参数等。
可以自己探索一下,如果有问题欢迎弹我。
人工智能数据治理——解读AI时代数据治理白皮书 2025【附全文阅读】 摘要:该白皮书面向企业数字化负责人及AI项目推进人员,探讨AI时代数据治理的战略升级。提出"好数据+好数据知识"双基石理念,强调数据需满足"三高"标准(高精度、一致性、时效性)并构建语义知识库。构建四层治理框架,包括数据采集处理、合规安全、知识库建设及质量改进,并介绍AI赋能治理的新范式,如智能ETL和治理Agent体系。同时分析"软件+AI+好数据"的应用模式,为企业实现智能数据治理提供实践指导。(149字) 阅读详情

相关推荐

用Proteus8.9自带STM32F401VE的Controller仿真STM32F407ZGT6,F429IGT6

@用Proteus8.9自带STM32F401VE的Controller仿真STM32F407ZGT6,F429IGT6 一, 目前得到的 Proteus8.9版本软件能够支持的Cortex-M4固件库项目,只能到达STM32F401VE (如下图1所示)。 (图1) 作为ST公司Cortex-M4更为广泛应用的F407,F429系列芯片;现在的Proteus8.9版本软件还没有固件库支持,不能...

kaillen的博客 3万+

判断多个值,equals 重写、简化

public class EqualsTest {          public boolean equals(Object obj) {     //重写equals方法         boolean flag = true;         if (obj instanceof List) {             List list = (List) obj;     //传

D的博客 3145

英特尔® NUC迷你电脑实现无人值守自动开机配置指南

本文详细介绍了如何配置英特尔® NUC迷你电脑实现无人值守自动开机功能。从BIOS设置到操作系统级配置,涵盖硬件兼容性确认、电源恢复功能设置及常见问题解决,帮助用户轻松实现设备断电后自动恢复运行,适用于家庭服务器、企业终端等多种场景。

weixin_42638178的博客 472

Java工具类StringUtils的equals、equalsIgnoreCase、equalsAny、equalsAnyIgnoreCase方法详解

4.equalsAnyIgnoreCase方法比较字符串与给定的数组中任何一个字符串相等就返回true。3.equalsAny方法比较字符串与给定的数组中的任何一个字符串相等就返回true。2.equalsIgnoreCase方法比较两个字符串是否相等并且忽略大小写。若需要判断传入的值是否与在下面数组中。方法比较两个字符串是否相等。定义一个默认选项数值的数组。

鹏神丶明月天 6959

用SPSS做信效度分析

对问卷进行Cronbach’s Alpha信度检验。如果此值高于0.8,则说明信度高;如果此值介于0.7-0.8之间,则说明信度较好;如果此值介于0.6~0.7,则说明信度可接受;如果此值小于0.6,说明信度不佳。下面利用SPSS进行分析,点击分析–标度–可靠性分析选项,选中所要分析的问卷数据或题目。得到结果,我们要看这个有用的结果,当克隆巴赫Alpha系数(也可以看标准化后的)大于0.8时候,说明问卷信度较高。

小高~的博客 1万+

手把手教你用STM32单片机DIY一个简易PLC(附完整电路图与PCB文件)

本文详细介绍了如何利用STM32单片机DIY一个简易PLC控制器,涵盖硬件设计、电路图解析、PCB布局优化及固件框架实现。通过完整的电路图和PCB文件,帮助读者从元器件选型到工业级优化,逐步构建可靠的PLC系统,特别适合工业自动化爱好者和学习者实践。

weixin_42527160的博客 570

Java学习之equals方法

Java学习之equals方法 1.定义 equals方法是Object类的方法,比较本引用和参数指明的某个引用是否相等,即是否指向同一对象。返回true或false。 2.定义方式 public boolean equals(Object obj) 3.应用 很多Object的子类对其进行了覆盖,并实现了不同的功能 **例如:**String类对equals方法进行了覆盖,比较两个字符串对象的内容是否相等,而不是比较引用是否指向同一个字符串对象 String s1 = new String("Hell

只须一笑不须愁X的博客 677

一张图看懂中国民航适航审定体系:从适航司到审定中心,到底谁管谁?

本文深入解析中国民航适航审定体系,从立法层到执行层的完整链条,揭示适航管理的金字塔结构和核心流程。涵盖适航司、审定中心等关键机构职能,以及型号审定、生产许可审定等全生命周期管理,展现中国适航体系的特色实践与创新探索。

weixin_30896511的博客 475

java提高篇(十二)-----equals()

equals() 超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等。该方法的源码如下: public boolean equals(Object obj) { return (this == obj); } 我们知道所有的对象都拥有标识(内存地址)和状态(数据),同时“==”比较两个对象的的内存地址,所以说使用Object的eq...

chenssy 的技术博客 455

YOLOv11 快速入门指南 | 10分钟吃透网络结构与新特性

2024 年 9 月 30 日,Ultralytics 发布了 YOLOv11,这是继 YOLOv8、v9、v10 之后的最新一代实时目标检测模型。 与前几代相比,YOLOv11 在保持“单阶段、实时、端到端”三大基因的同时,带来了两大核心升级:一句话总结:YOLOv11 = 更快 + 更准 + 更少参数。 2.2 微观单元:C3k2 与 C2PSA 2.2.1 C3k2 模块 作用:替换 YOLOv8 的 C2f,做跨阶段局部特征融合。 核心代码(ultralytics/nn/modules/block

shrgegrb的博客 1407

1.4 KFD 设备文件的获取与驱动握手协议

本文分析了OpenClose模块中libhsakmt与KFD内核驱动建立通信的过程。首先通过hsaKmtOpenKFD()函数打开/dev/kfd设备文件,建立用户态与内核态的通信通道。随后通过AMDKFD_IOC_GET_VERSION ioctl命令完成版本握手,确认双方的接口兼容性。KFD驱动采用Major.Minor二级版本号体系,当前主要版本为1,从1.1演进到1.19不断添加新功能。整个过程构成了用户态与内核态之间的"建连协议",是所有后续GPU操作的基础前提。

图形/计算GPU的驱动与虚拟化技术分享园地 599

java中常用工具类equals、date、Math、arraylist,Collections多种排序、map集合遍历

equals、date、math工具类的使用

weixin_40228600的博客 499

置顶必读(1) |《YOLOv11实战:从入门到深度优化》专栏导读,带你一文了解本专栏!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏,该专栏专注于分享我在YOLOv8目标检测模型中的实战经验,涵盖从入门基础到深度优化的全方位解决方案。无论你是计算机视觉的新手,还是具有多年深度学习经验的专家,本专栏都将为你提供高效、可复现的技术方案,助你掌握YOLOv8的核心技术,提升目标检测性能,突破瓶颈,优化模型,并加速项目开发🚀!

**My Coding Family** 12万+

最无用的工具类封装——Equals条件封装 2

最无用的工具类封装——Equals条件封装 2 昨天出了一篇最无用的工具类封装 EqualsUtils 出这个工具类的目的是为了解决书写 if 语句比较多的时候造成的错误,结果搞出个什么鬼 今天我针对昨天的 EqualsUtils 做了扩展,并使用了一个新名字——IfUtils 社会我 T 哥,人狠话不多,上代码 package cn.texous.test.demo.commons.utils; import lombok.Data; import java.util.ArrayList; imp

TEXOUS的博客 383

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

比较连个set集合是否相等

如果set集合里面的元素是自定义对象,一定要重写自定义对象的equals和hashcode方法 /** * ClassName: EqualsUtil * Description:判断两个set集合的内容(基本数字类型、对象(重写equals和hashcode方法))是否一样 * Author: yqwang103 * CreateDate: 2019/7/17 15:31 **/ ...

wang_yaqin的博客 3879

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

推荐项目:EqualsUtil —— 简化Java对象比较的高效工具

推荐项目:EqualsUtil —— 简化Java对象比较的高效工具 是一个专门为Java开发者设计的小巧而强大的库,它简化了对象相等性判断的复杂性,提高了代码的可读性和一致性。在日常开发中,我们常常需要对两个对象进行深度比较,而手动编写这样的逻辑可能会引入错误。EqualsUtil就是为了解决这个问题而诞生的。 技术分析 EqualsUtil 库基于Java语言,采用了反射机制来实现对象属性的比...

gitblog_00061的博客 395

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

重写equals方法

思想: 1.先判断比较的对象是不是同一个对象,用 == 判断,如果同一对象,直接返回true 2.判断对象的类型是否一致,用 instanceof 或者getClass()方法判断,如果类型不一致,直接返回false 3.如果类型一致,将Object对象类型强转为比较对象类型(强转后才能调用成员变量) 4.比较对象成员变量的内容是否一致,字符串内容比较用equals(),这个equals方法已经官方重写过,其它内容比较用 ==。 @Override public boolean equals(Objec.

m0_65144072的博客 526

Java 字符串的比较equals()方法

weixin_46441425的博客 570

Java正确使用 equals 方法

Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。 举个例子: // 不能使用一个值为null的引用类型变量来调用非静态方法,否则会抛出异常 String str = null; if (str.equals("SnailClimb")) { ... } else { .. } 运行上面的程序会抛出空指针异常,但是我们把第二行的条件判断语句改...

is Mr.Chen的博客 8273

Java里的equals总结

前段时间一直在工作中使用Java,由于有一些C++功底,于是简单看了一下Java相关的语法便开始编写代码,结果在创建一个自定义类,并将自定义类放入ArrayList中,之后查找ArrayList是否有此元素的时候,发现怎么也查询不到对应的元素。在网上搜了一下资料,发现原因是没有重写对象的equals()方法,导致无法查找到对应的对象。之后由查了与之联系的相关资料,便有了以下的总结。 这篇总结的形式...

weixin_30730053的博客 235

Java的equals方法

方法比较对象的引用,即它检查两个对象是否引用同一个内存地址。然而,你可以在自定义类中重写。方法,以便根据对象的内容(而不是引用)来比较它们的相等性。类中定义的一个方法,用于比较两个对象是否相等。类型的参数,并返回一个布尔值,表示两个对象是否相等。在这个示例中,我们创建了一个。以下是一个自定义类重写。对象具有相同的哈希码。

weixin_63490470的博客 519

(十七)Java工具类StringUtils的equals、equalsIgnoreCase、equalsAny、equalsAnyIgnoreCase方法详解

1.equals方法比较两个字符串是否相等 public static boolean equals(CharSequence cs1, CharSequence cs2) { if (cs1 == cs2) { return true; } if ((cs1 == null) || (cs2 == null)) {

OceanSky的专栏 2万+

equals用法

引言 equals()是定义在Object.java中的一个方法,用于比较两个对象否相等。本文主要讨论内容如下。 equals和“==”区别 重写equals equals和“==”区别   equals 和“==”都用于比较两个对象是否相等。区别有两点,第一,equals是一个方法,“=="而是一个运算符;第二,“==”只能用于比较两个对象的在内存中的地址是否相同,equals既可以根据内存地址判断两个对象是否相同,还可以根据对象内容判断是否相等。equals的两种判定方式对应两种实现方法,第一种,O

huhu123444的博客 1万+

equals方法详解

一、equale方法是什么? Object 类中的 equals 方法是用于检测一个对象是否等于另外一个对象。在Object类中实现的 equals 方法将确定两个对象是否具有相同的引用(内存地址)。如果两个对象具有相同的引用,那么他们一定是相等的,看看下面这段代码的运行: public static void main(String[] args) { Object o = new Object(); //分别将 o 赋值给变量o1,o2 Object o1 ...

qq_57887050的博客 3万+

Java Equals方法

Equals方法 Object类中的equals方法用于检测一个对象是否等于另外一个对象。在Object类中,这个方法将判断两个对象是否具有相同的引用。如果两个对象具有相同的引用,它们一定是相等的。从这点上看,将其作为默认操作也是合乎情理的。然而,对于多数类来说,这种判断并没有什么意义。例如,采用这种方式比较链各个PrintStream对象是否相等就完全没有意义。然而,经常需...

weixin_30678349的博客 182

StringUtils工具类常用方法汇总2(截取、去除空白、包含、查询索引)

  在上一篇中总结了StringUtils工具类在判断字符串为空,大小写转换,移除字符或字符序列,替换,反转,切割合并等方面的方法,这次再汇总一下其它常用的方法。 一、截取   StringUtils中常用的截取字符串的方法如下: substring(String str,int start) substring(String str,int start, int end) substringAf...

weixin_30820151的博客 936
上一篇: 智慧数据中心架构(项目总结留存篇)
下一篇: Groovy动态加载Java代码的使用方法和工具类
黄焖大排骨
博客等级 码龄8年 52粉丝 19原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值