JAVA--HashCode 基础(判断对象是否相等)
来源:互联网 发布:java软件工程师就业班 编辑:程序博客网 时间:2024/06/06 12:55
转自:http://blog.csdn.net/qq_25223941/article/details/49905941
hashCode在JAVA中,代表了对象的一种特征。不同的对象哈希码是不同的。
哈希码是一种数据结构算法,在JAVA中,常见的哈希码算法获取到的哈希码具体值是怎么获取到的呢?
来分析一下:
1.在String类中的hashCode是根据String类中包含的字符串获取的,根据哈希算法获取到一个哈希码,那么只要我的字符内容是相等的,我的哈希码也是相同的。eg:
结果我想大家已经猜到了,true!
2.Integer类中的hashCode和String是一样的,也是根据类中包含的值去生成的哈希码。两个相同大小的integer值,那么它的hashCode也是相等的。eg:
结果还是true!
3.Object类中的hashCode则和之前的不一样了,他是根据对象的内存地址经过哈希算法之后获取到的哈希码,由于每个对象的内存地址不相同,所以hashCode是不同的。
我们常常会去用hashCode和equals去判断对象是否相等!
在Hashtable、HashMap、HashSet、LinkedHashMap中,我们去判断集合中是否有相同的对象,我们就要去重写对象的hashCode和equals来帮助我们获取到集合中相同的对象!
在上述的Hash运用的集合里面,执行操作时,都会自动执行对象的hashCode方法。去进行判断是否是同一个对象。
**如HashMap在put的时候key不能相同,那么在我添加对象到key的时候就会去调用hashcode和equals方法,去判断是否是同一个对象,如果不是那么就加入集合,是的话则不加入。
所以我们重写hashCode,可以return 一个对象的uuid.hashCode()这样去进行判断
HashSet也是如此,原理是相同的。
重写的hashCode()和equals():
最终输出的结果是cx,map里面就一个对象,就是我第一次添加的那个。第二次添加的由于i是相同的所以判断它们是同一个对象,就没有被Put进去!!!!
0 0
- JAVA--HashCode 基础(判断对象是否相等)
- JAVA--HashCode 基础(判断对象是否相等)
- JAVA--HashCode 基础(判断对象是否相等)
- java 判断两个对象是否相等 equals 和 hashcode() 的必要性
- java 判断两个对象是否相等 equals 和 hashcode() 的必要性
- 集合Set判断对象是否相等的equals和hashCode
- java中判断两个对象是否相等
- Java通用判断对象是否相等方法
- 判断java中两个对象是否相等
- 判断java中两个对象是否相等
- 判断java中两个对象是否相等
- 判断java中两个对象是否相等
- 判断对象是否相等
- java对象判断相等需重写hashCode必要性的探讨
- C# 判断对象是否相等
- OC判断对象是否相等
- Javascript 判断对象是否相等。
- js判断对象是否相等
- 苹果审核广告选择
- mp4文件播放不了
- mybatisgeneratormodel-mybatis逆向工程
- table中th内容水平垂直居中
- LeetCode 24. Swap Nodes in Pairs
- JAVA--HashCode 基础(判断对象是否相等)
- Ural 2069 Hard Rock
- Android TextSwitcher 文本切换器
- Qt使用QStackedWidget实现堆栈窗口
- UNIX高级编程-高级I/O
- 主分区 逻辑分区
- [数据表设计] - 商品模型数据架构图
- Java集合框架总结
- [yii2] -- [ActiveForm] -- ActiveForm的使用方法