- Java类
- Java包
- Java方法
- Java访问
- Java创建
- Java对象(Object)
- Java内部类
- Java继承
- Java抽象类
- Java泛型类
- Java异常
- Java接口
- Java枚举
- Java注解
Java哈希编码
对象的哈希代码
哈希码(也叫散列码)是一个整数值。计算整数的算法称为散列函数。Java使用散列码从基于散列的集合中有效地检索数据。Object
类有一个返回int
的hashCode()
方法,它是对象的哈希码。
该方法的默认实现通过将对象的内存地址转换为整数来计算对象的哈希码。下面是我们在类中重写hashCode()
方法时必须遵循的规则。
假设有两个对象引用,x
和y
。
如果x.equals(y)
返回true
,x.hashCode()
必须返回一个整数,它等于y.hashCode()
。
如果两个对象使用equals()
方法相等,则它们必须具有相同的哈希码。
如果x.hashCode()
等于y.hashCode()
,则x.equals(y)
不必返回true
。
如果对同一个对象多次调用hashCode()
方法,则该方法必须返回相同的整数值。
如果一个类覆盖这两个方法中的任何一个,它必须基于散列集合覆盖该类的对象以保证能正确工作。Java 7添加了一个实用程序类java.lang.Objects
。 它包含一个hash()
方法,用于计算任意数量值的哈希码。从java 7,使用Objects.hash()
方法来计算对象的哈希码。
实例
以下代码显示如何计算哈希值。
class Book { private String title; private String author; public int hashCode() { int hash = 37; int code = 0; // Use title code = (title == null ? 0 : title.hashCode()); hash = hash * 59 + code; // Use author code = (author == null ? 0 : author.hashCode()); hash = hash * 59 + code; return hash; } }
上一篇:Java Object类
- Java教程
- Vim教程
- Swing教程
- Spring教程
- Spring Web Services教程
- Spring MVC教程
- Spring JDBC教程
- Spring Cloud教程
- Spring Boot教程
- Spring Boot CLI教程
- Spring Batch教程
- Spring AOP教程
- PDFBox教程
- JSP教程
- JSF教程
- JPA教程
- Java面向对象设计
- Java设计模式
- Java虚拟机教程
- Java泛型教程
- Java正则表达式教程
- Java数据类型教程
- Java并发编程教程
- Java密码学教程
- Java多线程教程
- Java国际化(i18n)教程
- JavaFX教程
- Java9教程
扫描二维码
程序员编程王