[android] 看博客学习hashCode()和equals()
2016-04-25 22:40
459 查看
equals()是Object类提供的一个方法,众所周知,每一个java类都继承自Object,所以说每一个对象都有一个equals()方法,我们在用这个方法时却一般重写这个方法
Object类中equals()方法源码
此时比较的是两个引用是否指向同一个对象,我们来使用这个方法的时候往往是希望比较两个对象逻辑上是否相等
String类重写了equals()方法,因此:
hashCode()方法也是从Object类继承来的,返回该对象的哈希码值,这个值通常是该对象的内部地址返回来的整数,它的实现主要是为了提高哈希表的性能
hashCode()的返回值与equals()的关系如下
如果x.equals(y)返回 true ,那么x和y的hashCode()值必须相等
如果x.equals(y)返回 false ,那么x和y的hashCode()值有可能相等,有可能不等
重写equals()方法就要重写hashCode()方法
Object类中equals()方法源码
public boolean equals(Object obj) { return (this == obj); }
此时比较的是两个引用是否指向同一个对象,我们来使用这个方法的时候往往是希望比较两个对象逻辑上是否相等
String类重写了equals()方法,因此:
String a=new String("aa"); String b="aa"; System.out.println(a.equals(b));//true System.out.println(a==b); //false System.out.println(a.hashCode()); System.out.println(b.hashCode());
hashCode()方法也是从Object类继承来的,返回该对象的哈希码值,这个值通常是该对象的内部地址返回来的整数,它的实现主要是为了提高哈希表的性能
hashCode()的返回值与equals()的关系如下
如果x.equals(y)返回 true ,那么x和y的hashCode()值必须相等
如果x.equals(y)返回 false ,那么x和y的hashCode()值有可能相等,有可能不等
重写equals()方法就要重写hashCode()方法
相关文章推荐
- [android] 看博客学习Android常见的几种RuntimeException
- android Bitmap分配在java heap还是native heap
- Android 实现沉浸式状态栏-让你的状态栏变个颜色
- Android笔记--回调函数的一种使用方法
- Android 开发新手指南一
- Android中的线程池
- 如何保证Android与服务器的DES加密保持一致
- [置顶] Android Studio 下载 + 安装 + 升级
- android图片加载导致的OOM分析及有效解决办法(BitmapUtils)
- Android笔记--在切换fragment时,让fragment里的listview实时刷新数据的一种方法
- android 制作.9.png图片
- Android SDK 目录详解
- Android Studio--Android中的消息机制
- Android5.0的RecycleView技术
- 第四章Android移植环境搭建
- 第三章Android移植平台工具介绍
- Android Studio--快捷键
- 第二章 Android系统与嵌入式开发
- Android-ContextMenu上下文菜单
- Android Studio使用过程中那些事儿(持续更新)