首页
Java面试
PHP面试
经验笔记
在线工具
首页
在线工具
Java如何重写equals和hashCode方法
java重写hashcode方法
C语言 在线运行
C++ 在线运行
Java 在线运行
PHP 在线运行
Python 在线运行
Python3 在线运行
Nodejs 在线运行
Ruby 在线运行
Perl 在线运行
Go 在线运行
R语言 在线运行
Lua 在线运行
C# 在线运行
结果显示HTML
清空
点击运行
public class ObjHashCodeExample { public static void main(String[] args) { Person person = new Person(1,"张三", "湖北"); Person person2 = new Person(1,"张三", "湖北"); //这里使用equals重写 System.out.println(person.hashCode()); System.out.println(person2.hashCode()); Person2 person2_1 = new Person2(1,"张三", "湖北"); Person2 person2_2 = new Person2(1,"张三", "湖北"); //这里不使用equals重写 System.out.println(person2_1.hashCode()); System.out.println(person2_2.hashCode()); } } class Person { private Integer id; private String name; private String address; public Person(Integer id, String name, String address) { this.id = id; this.name = name; this.address = address; } @Override public int hashCode(){ final int prime = 31; int result = 1; //重写每一个变量的hashcode值 result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((address == null) ? 0 : address.hashCode()); return result; } @Override public boolean equals(Object o) { if(o == this) return true; if(!(o instanceof Person)) return false; if (o instanceof Person) { Person person = (Person)o; return person.id.equals(id) && person.name.equals(name) && person.address.equals(address) ; } return false; } } class Person2 { private Integer id; private String name; private String address; public Person2(Integer id, String name, String address) { this.id = id; this.name = name; this.address = address; } }
运行结果
java重写hashcode方法在线测试,这是一个简单方便的Java在线运行工具,支持在线编译、在线调试和在线结果的实时反馈。