博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hashCode与eqauls
阅读量:6545 次
发布时间:2019-06-24

本文共 845 字,大约阅读时间需要 2 分钟。

<1>、hashCode

1.用途:hashCode()方法用于计算对象的哈希码

2.hashCode()在哈希表中起作用,如java.util.HashMap。

   如果对象在equals()中使用的信息都没有改变,那么hashCode()值始终不变。

   如果两个对象使用equals()方法判断为相等,则hashCode()方法也应该相等。

   如果两个对象使用equals()方法判断为不相等,则不要求hashCode()也必须不相等;但是开发人员  应该认识到,不相等的对象产生不相同的hashCode可以提高哈希表的性能。

3.作用:当我们向哈希表(如HashSet、HashMap等)中添加对象object时,首先调用hashCode()方法计算object的哈希码,通过哈希码可以直接定位object在哈希表中的位置(一般是哈希码对哈希表大小取余)。如果该位置没有对象,可以直接将object插入该位置;如果该位置有对象(可能有多个,通过链表实现),则调用equals()方法比较这些对象与object是否相等,如果相等,则不需要保存object;如果不相等,则将该对象加入到链表中。

<2>、equal

1.用途:equals()方法用于判断两个对象是否相等

2.自反性:x.equals(x)必须返回true。

   对称性:x.equals(y)与y.equals(x)的返回值必须相等。

   传递性:x.equals(y)为true,y.equals(z)也为true,那么x.equals(z)必须为true。

   一致性:如果对象x和y在equals()中使用的信息都没有改变,那么x.equals(y)值始终不变。

   非null:x不是null,y为null,则x.equals(y)必须为false。

<3>、equals()和hashCode()都不是final方法,都可以被重写。

转载于:https://www.cnblogs.com/Jinxzzzz/p/8998694.html

你可能感兴趣的文章
Log4j_学习_03_自己动手封装log工具
查看>>
Redis的各项功能解决了哪些问题?
查看>>
FastAdmin 极速后台管理框架 1.0.0.20190301_beta
查看>>
Selenium2 WebDriver 启动Chrome, Firefox, IE 浏览器、设置profile&加载插件
查看>>
Python标准库01 正则表达式(re包)
查看>>
Hello,Java女神
查看>>
rpc远程调用开发
查看>>
复习-css控制文本字体属性
查看>>
学习设计模式——观察者模式
查看>>
什么是centos 的epel源
查看>>
删除LVM步骤
查看>>
Zookeeper客户端
查看>>
linux常用指令
查看>>
Oracle使用PLSQL连接时,导入导出问题
查看>>
Servlet Demo
查看>>
Struts2中的<s:action>标签
查看>>
Java中取某一个范围的随机数
查看>>
一条复杂SQL实现思路
查看>>
我的友情链接
查看>>
android app 退出时提示确认
查看>>