Integer比较是否相等问题

来源:互联网 发布:java web mvc四层架构 编辑:程序博客网 时间:2024/05/19 03:46

有两大种情况

1. Integer 与 Integer 进行比较

2. Integer 与 int 进行比较

第一种:Integer 与 int进行比较

Integer 与int进行比较,会自动比较  两个的值是否相等,如同 int与int这种基本类型的比较一样。

第二种:Integer 与 Integer 进行比较

Integer与 int不同,int是基本数据类型,Integer是 int的封装类,两者不同。
java 的 对象进行比较,有两种:一个是 比较引用地址(相当于C语言指针),另一种就是比较内部数据。
程序设计当中,一般都不是比较引用地址,而是比较内部数据。
public boolean equals(Integer a,Integer b){if(a==b){//如果引用地址是否相同(包括都为null)则返回真return true;}if(a!=null){return a.equals(b);}return false;//如果 a 为空返回 false(当b也为null,前面就已经返回 true)}

当然,也要通用于比较 Short  Long 等等
public boolean equals(Object a,Object b){if(a==b){//如果引用地址是否相同(包括都为null)则返回真return true;}if(a!=null){return a.equals(b);}return false;//如果 a 为空返回 false(当b也为null,前面就已经返回 true)}
或者
public final <T> boolean equals(T a,T b){if (a== null) {return b== null;} else {return a.equals(b);}}