Java 重写equals方法
Posted Vincen_shen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 重写equals方法相关的知识,希望对你有一定的参考价值。
List对象的contains方法实际上也是调用的equals()方法来进行逐条对比的。
示例代码:
package com.imooc.collection; /** * 课程类 */ public class Course { private String id; private String name; public Course(){ } public Course(String id, String name) { this.id = id; this.name = name; } public void setId(String id){ this.id = id; } public void setName(String name) { this.name = name; } public String getId() { return id; } public String getName() { return name; } /** * 重写 Course类的 Equals方法 * @param obj * @return */ @Override public boolean equals(Object obj){ if(this == obj) { return true; } if(obj == null) { return false; } if(!(obj instanceof Course)){ return false; } Course course = (Course) obj; if(this.name.equals(course.name) && this.id.equals(course.id)) { return true; } return false; } }
Set对象的contains方法跟List实现方式不一样,是先调用hashCode()方法返回hash码,如果hash码一致,再调用equals()方法。
@Override public int hashCode() { return Objects.hash(name); }
以上是关于Java 重写equals方法的主要内容,如果未能解决你的问题,请参考以下文章
请问各位大佬这道java的重写equals和重写hashcode方法内部是啥意思呀?