两个 integer 值判断是否相等

1.如果比较Integer A a; Integer B b; 我们通常如下比较:

if (null != a && null != b) {
    if(a.intValue() == b.intValue()) {
        // TODO
    }
}

2.有没有工具类,可以直接比较两个Integer的值的大小的?而不是上面这种臃肿的代码。

补充:java中,用最简单的代码实现比较两个Integer的值是否相等,有什么好的实现方式?

答:

Integer num1 = 259; Integer num2 = null; System.out.println(org.apache.commons.lang.ObjectUtils.equals(num1, num2));

上述方法如果num1和num2都为null时,比较的结果为真。如果定义为比较结果为假,那还不知道是否有开源的第三方工具方法支持,或者说自己写一个方法就好了。在java中,null==null表达式的结果也是为真。

自定义方法:

  public static boolean compare(Integer num1,Integer num2){
        if(null == num1 || null == num2){
            return false;
        }

        return num1.equals(num2);
    }

或者

if (index == null && other.index != null) {    return false;} else if (index != null && !index.equals(other.index)) {    return false;}

项目fix bug 
if(one.getOrderState() != OrderStateConfig.OrderPurchase) {   return Boolean.FALSE;}改为if(OrderStateConfig.OrderPurchase.equals(one.getOrderState())) {   return Boolean.FALSE;}



原文地址:https://www.cnblogs.com/withoutaword/p/8462771.html

时间: 2024-10-10 12:32:20

两个 integer 值判断是否相等的相关文章

Integer值判断是否相等问题

昨天在开发中遇到一个问题,定义了两个Integer变量,暂且定义为Integer a;  Integer b; 这两个值由前端赋值并传到后台,前台传的是a = 12345, b = 12345,  但我在后台比较的时候 if (a == b),却返回false,好无语啊,不都是123吗?为什么返回false,后来改为equals(),返回true,但其中的有些端倪还不太清楚,现总结下: 我们知道Integer是int的包装类,在jdk1.5以上,可以实现自动装箱拆箱,就是jdk里面会自动帮我们转

判断Integer值相等最好不用==(未整理)

今天在开发中判断两个Integer值相等, Integer a = 3; Duixiang duixiang = new Duixiang(); duixiang = DAO.getDuixiang(); Integer b = duixiang.getB(); System.out.print(a == b);System.out.print(a.equals(b)); 发现a==b时,为false,a.equals(b)为true. 后来发现因为我b的值是从数据中拿出的一个对象的值.a和b的

判断Integer值相等不能用==

今天在开发中判断两个Integer值相等, Integer a = 3; Duixiang duixiang = new Duixiang(); duixiang = DAO.getDuixiang(); Integer b = duixiang.getB(); System.out.print(a == b);System.out.print(a.equals(b)); 发现a==b时,为false,a.equals(b)为true. 后来发现因为我b的值是从数据中拿出的一个对象的值.a和b的

[转]WinExec、ShellExecute和CreateProcess及返回值判断方式

[转]WinExec.ShellExecute和CreateProcess及返回值判断方式 http://www.cnblogs.com/ziwuge/archive/2012/03/12/2392472.html 有三个API函数可以运行可执行文件WinExec.ShellExecute和CreateProcess.CreateProcess因为使用复杂,比较少用. WinExec主要运行EXE文件. ⑴ 函数原型: UINT Win Exec(LPCSTR lpCmdLine, UINT u

python 值比较判断,np.nan is np.nan 却 np.nan != np.nan ,pandas 单个数据框值判断nan

pandas中DataFrame,Series 都有 isnull()方法,而数据框却没有,用了就会报错:AttributeError: 'float' object has no attribute 'isnull' 怎么判断单个框是否为 np.nan Python常规的判断,==,和is, 这对None是有效的 None is NoneOut[49]: True None == NoneOut[50]: True 而对,np.nan,只能用is da1pd.ix[6000996,u'团队']

两个对象值相同,有相同的hash code

两个对象值相同(x.equals(y) == true),则一定有相同的hash code. 这是java语言的定义:  因为:Hash,一般翻译做“散列”,也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值.1) 对象相等则hashCode一定相等:2) hash

C语言中有关两个数,值的交换

一.开讲感言 最近在系统的学习C语言,虽说以前在大学里学习过,但是人嘛,时间一久就会忘了.由于行业的原因,我学习了iOS,但是想学习iOS,C就是万万不能忘的.于是经过几天的时间,我终于有了一点小成就,就是有关在C里面的两个值的交换,这里或许只是一部分,希望还有知道方法的同事,不吝赐教.下面就不多说了,我们一起来看,怎么交换两个数的值,我这里面提供了三种方法. 第一种:第三方变量交换法 我们在C++编译器中设三个变量,并且给其中两个变量赋值,第三方变量初始化为0,下面我们来看看具体的代码情况.由

如何不使用第三个变量来交换两个数的值

最近在看<c++从入门到精通>自学c++,里面有一道课后题是如何做到不适用第三个变量来交换两个数的值,以下是我在网上查找到的资料,记录下并作为笔记. 题目:a=10,b=15,将a / b的值互换. 通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码如下:      int a,b;      a=10; b=15;      int t;      t=a; a=b; b=t;      这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用

把1到100的数字拆分成字典中的两个键值对 python

需求:把1到100的列表拆分成字典中两个键值对,k1和k2. #!/usr/bin/python num = {} all_list = [] for nu in range(1101): all_list.append(nu) for i in all_list: if i < 75: if 'k1' in num.keys(): num['k1'].append(i) else: num['k1'] = [i, ] else: if 'k2' in num.keys(): num['k2']