equals方法和 == 的使用
equals方法的使用
equals方法
源码展示:
public boolean equals(Object obj) {
        return (this == obj);
    }
解析: equals方法默认比较使用的是== 符号进行比较的,也就是说,比较的是值
直接使用 == 符号比较的就是值是否相等.地址值也要相等.
当比较的类型是基本类型的时候,比较的就是值是否相等
当比较的类型是引用类型的时候,比较的就是对象的地址值
 如果想要比较对象的属性值是否相等?那么就需要重写equals方法.
重写equals方法
public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Student other = (Student) obj;
		if (age != other.age)
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}
通过重写equals方法就可以实现对对象的属性的比较啦,只要属性值一样,则比较结果为true.
案例展示:
public class Test {
	public static void main(String[] args) {
		A a = new A("hhh", 18);
		A a1 = new A("hhh", 18);
        //重写equals方法之前
		//System.out.println(a.equals(a1));//false
       	 System.out.println(a==a1);//false
        //重写equals方法以后
        System.out.println(a.equals(a1));//true
        //使用== 比较,仍然是false 比较的是地址值.
        System.out.println(a==a1);//false
	}
}
class A{
	private String name;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public A(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
}
//重写equals方法
@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		A other = (A) obj;
		if (age != other.age)
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}
												
											equals方法和 == 的使用的更多相关文章
- List<T>Find方法,FindAll方法,Contains方法,Equals方法
		
假如传入的T是一个类, List<MessageInfos> MessageInfos = new List<MessageInfos>(); MessageInfos= Me ...
 - [java] 更好的书写equals方法-汇率换算器的实现(4)
		
[java] 更好的书写equals方法-汇率换算器的实现(4) // */ // ]]> [java] 更好的书写equals方法-汇率换算器的实现(4) Table of Content ...
 - java中的equals()方法重写
		
如何java中默认的equals方法跟实际不符的话,需要重写equals方法.例如: public class TestEquals { public static void main(String[ ...
 - java提高篇(十三)-----equals()方法总结
		
equals() 超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等.该方法的源码如下: public boolean equals(Object obj) { retu ...
 - Java中“==”与equals方法的区别
		
1. 用“==”比较两个变量,如果两个变量是基本类型变量,且都是数值类,则值相等就返回true 如果两个变量是引用型变量,则两个对象的地址一样,即指向同一个对象,则返回true 2.equals:St ...
 - equals()方法
		
equals()方法是根类Object中的一个方法,子类可以根据需要重写该方法(比如:String类). 一.Object类中的equals()方法实现如下: public boolean equal ...
 - C#中==与Equals方法的区别
		
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Console ...
 - java重写equals方法
		
@Override public int hashCode() { return task.getId(); } @Override public boolean equals(Object obj) ...
 - 重写Object类中的equals方法
		
Object是所有类的父亲,这个类有很多方法,我们都可以直接调用,但有些方法并不适合,例如下面的student类 public class Student { //姓名.学号.年纪 private S ...
 - java中hashCode方法与equals方法的用法总结
		
首先,想要明白hashCode的作用,必须要先知道Java中的集合. 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set. 前者集合内的元素是有序的,元素可以重 ...
 
随机推荐
- CSS 中的伪类和伪元素
			
伪类(Pseudo classes) 由于状态的变化是非静态的,所以元素达到一个特定状态时,它可能得到一个伪类的样式:当状态改变时,它又会失去这个样式.由此可以看出,它的功能和 class 有些类似, ...
 - Django文档阅读-Day3
			
Django文档阅读-Day3 Writing your first Django app, part 3 Overview A view is a "type" of Web p ...
 - vue3开发饿了么商城2020年新版本
			
带手机验证码登陆, 带全套购物车系统 带数据库 前后端分离开发 带定位用户功能 数据库代码为本地制作好了 带支付宝支付系统 带django开发服务器接口教程 地址: https://www.dua ...
 - 好用的反向代理工具NATAPP
			
这里推荐一个好用的反向代理工具NATAPP NATAPP1分钟快速新手图文教程 有免费的和付费的个人建议付费的,免费还需要身份证验证,付费版最低9元/月,看个人需求! 这里给个邀请码贴在这需要的话可以 ...
 - Linux查看端口或pid使用路径
			
1. lsof -i:10010 查看10010端口的占用情况 命令返回结果: 2. netstat -lpn | grep 80 查看80端口服务端socket占用状况 3. ll /proc/26 ...
 - Dockerfle创建镜像
			
简介 Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行. 一般的,Dockerfile 分为四部分:基础镜像信息.维护者信息.镜像操作指令和容器启动时执行指令. # This ...
 - POJ1077 八数码问题
			
题目:八数码 网址:http://poj.org/problem?id=1077 在一个3×3的网格中,1~8这8个数字和一个"X"恰好不重不漏地分布在这3×3的网格中. 例如: ...
 - mybatis源码学习(二):SQL的执行过程
			
从上一篇文章中,我们了解到MapperMethod将SQL的执行交给了sqlsession处理.今天我们继续往下看处理的过程. SqlSession接口除了提供获取Configuration,Mapp ...
 - ELSE 技术周刊(2017.12.25期)
			
业界动态 V8 release v6.4 V8引擎发布v6.4,在速度和内存优化上又带来了一些提升.对于instanceof操作符的优化,带来了3.6x速度提升,同时使得uglify-js提高了15- ...
 - STL部分学习总结
			
一.map/multimap map/multimap映射容器的元素数据是由一个Key和一个Value成的,key与映照value之间具有一一映照的关系. map/multimap容器的数据结构也采用 ...