判断java中两个对象是否相等
来源:互联网 发布:反dns劫持 软件 编辑:程序博客网 时间:2024/04/30 23:59
判断java中两个对象是否相等
java中的基本数据类型判断是否相等,直接使用"=="就行了,相等返回true,否则,返回false。
但是java中的引用类型的对象比较变态,假设有两个引用对象obj1,obj2,
obj1==obj2 判断是obj1,obj2这两个引用变量是否相等,即它们所指向的对象是否为同一个对象。言外之意就是要求两个变量所指内存地址相等的时候,才能返回true,每个对象都有自己的一块内存,因此必须指向同一个对象才返回ture。
如果想要自定义两个对象(不是一个对象,即这两个对象分别有自己的一块内存)是否相等的规则,那么必须在对象的类定义中重写equals()方法,如果不重写equals()方法的话,默认的比较方式是比较两个对象是否为同一个对象。
在Java API中,有些类重写了equals()方法,它们的比较规则是:当且仅当该equals方法参数不是 null,两个变量的类型、内容都相同,则比较结果为true。这些类包括:String、Double、Float、Long、Integer、Short、Byte、、Boolean、BigDecimal、BigInteger等等,太多太多了,但是常见的就这些了,具体可以查看API中类的equals()方法,就知道了。
重写equals()方法的步骤一般如下:
1、先用“==”判断是否相等。
2、判断equals()方法的参数是否为null,如果为null,则返回false;因为当前对象不可能为null,如果为null,则不能调用其equals()方法,否则抛java.lang.NullPointerException异常。
3、当参数不为null,则如果两个对象的运行时类(通过getClass()获取)不相等,返回false,否则继续判断。
4、判断类的成员是否对应相等。往下就随意发挥了。
如下代码:
package demos;/** * Created by hu on 2016/3/26. */public class Dog { private int age; private String name; public Dog(int age,String name){ this.age=age; this.name=name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public boolean equals(Object obj) { if(obj==null){ return false; } if(this==obj){ return true; } if(obj instanceof Dog){ Dog dog=(Dog)obj; if(dog.age==this.age&&dog.name.equals(this.name)){ return true; }else{ return false; } } return false; } public static void main(String[] args){ Dog dog1=new Dog(12,"wangcai"); Dog dog2=new Dog(12,"wangcai"); Dog dog3=new Dog(16,"wangcai"); System.out.println(dog1.equals(dog2));//true System.out.println(dog1.equals(dog3));//false }}
- java中判断两个对象是否相等
- 判断java中两个对象是否相等
- 判断java中两个对象是否相等
- 判断java中两个对象是否相等
- 判断java中两个对象是否相等
- 学习体会:在JAVA中如何判断两个对象是否相等
- java中判断两个数组是否相等
- 判断两个对象是否相等
- Java中如何判断两个对象是否相等(Java equals and ==)
- java中判断两个对象是否相等的方法和代码
- 在java的集合中是怎么判断两个对象是否相等的?(重要!)
- 【知识】java中判断两个字符串是否相等的问题
- Java中如何判断两个String是否相等
- java中判断两个字符串是否相等的问题
- java中判断两个字符串是否相等的问题
- java中判断两个字符串是否相等的问题
- java中判断两个字符串是否相等的问题
- java中判断两个字符串是否相等的问题
- 编辑pdf的软件怎么在pdf中插入页面
- Windows下安装并设置Redis
- Android 应用实现系统重启reboot
- CUDA编程实战-1
- Android屏幕密度(Density)和分辨率概念详解
- 判断java中两个对象是否相等
- 字符串和数字的格式化(基础)
- openwrt添加自定义应用程序开机启动
- 1062.Talent and Virtue (25)
- Php像Jquery一样解析和抓取Html元素
- C语言--数组
- 数据化管理第一步,你真的会做报表吗?
- windows下nmake一些错误的解决办法
- Android-->打造无限循环的RecyclerView