[android] 看博客学习hashCode()和equals()

equals()是Object类提供的一个方法,众所周知,每一个java类都继承自Object,所以说每一个对象都有一个equals()方法,我们在用这个方法时却一般重写这个方法

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()方法

时间: 2024-11-04 18:35:30

[android] 看博客学习hashCode()和equals()的相关文章

[android] 看博客学习Android常见的几种RuntimeException

异常分为两种: 1.编译时异常 当编译时异常抛出时,需要对其进行处理声明,否则编译不通过 2.运行时异常 编译时不检测,运行时 如果抛出,程序会立刻停止 NullPointerException 空指针引用异常 ClassCastException 类型转换异常 IllegalArgumentException 非法参数异常 ArithmeticException 算数运算异常 IndexOutOfBoundsException 下标越界异常 NumberFormatException 数字格式

android fragment 博客 学习记录

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上). 本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创

[javaSE] 看博客学习java并发编程

共享性 多线程操作同一个数据,产生线程安全问题 新建一个类ShareData 设计一个int 型的成员变量count 设计一个成员方法addCount(),把count变量++ 在main函数中开启多个线程操作这个成员变量,在main函数里 获取ShareData对象,new 出来 使用for循环10次,在循环中开启线程,模拟10个线程并发,在循环内 获取Thread对象,new出来,构造函数参数:Runable对象 匿名内部类实现Runable接口,重写run()方法 调用Thread.sle

[PHP] 看博客学习插入排序

定义数组长度变量$len,使用count()函数,参数:数组 for循环数组,条件:从第二个开始,遍历数组,循环内 定义临时变量$temp,赋值当前元素 for循环数组,条件:遍历当前元素前面的所有元素 判断当前元素与它前面的元素的大小,利用临时变量,转换变量 PHP版: <?php $arr=array(2,3,4,1,5); function insert_sort($arr){ $len=count($arr); for($i=1;$i<$len;$i++){ $temp=$arr[$i

Android系列博客撰写计划

Android系列博客撰写计划 Hello,各位博友,大家好!小巫好久没写博客,由于工作的原因没有太多时间来把自己的开发经验总结出来,根据以往的博客,博文的发布都是没啥规律的,也没有定任何计划说要写一系列的博文,比较散乱.最近我自己也想了一下,改变以往博客的写法,少些一些功能性的博文,而多写一些架构性或者解决方案的博文,以方便广大初学者能更快的掌握重要的点,而不是盲目的去解决一个一个功能点,而没有形成一个整体的思想.以后的博文将会以我个人学习大牛的经验和我个人的经验来呈现给大家,我也希望通过这种

struts2博客学习之旅

1.博客学习笔记(感谢博主):http://www.cnblogs.com/xiaolongSunny/ 2.struts检验器[使用 visitor 校验复合属性 ](感谢博主):http://takeme.iteye.com/blog/1667716

再学IHanlder 类----------------关于Asp.net与iis原理网上看博客收获写一个验证码用一般处理程序记的好长时间前就写过不过现在再看有点不一样的感觉

建一个web网站 新建一般处理程序直接贴代码: using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.SessionState;using System.Drawing;using System.Text;using System.Drawing.Imaging; namespace HandlerStudy{    /// <summary>    /

关于写博客,看博客

每次看到很多人坚持写那么多的好博客,我都会产生怎么自己不写博客的想法.于是乎,在激情的驱使下就会随手写几段文字,然后就不了了之了. 今天又看了cici珵的博客(北大cs本科,博士,美女),再次萌生了写自己的博客的想法. (似乎又要开始写自己这个人怎么怎么样,兴趣广泛,但是做事情不够努力:目标很多,但是不能坚持去做,这些对个人的分析了.反正每次真正着手做一件事情之前总是想分析一下之前怎么怎么做的不好.) 关于cici珵,是昨天刷知乎,看到覃超(覃超大魔王)的知乎专栏文章,关于楼教主从google离

程序猿的技术博客Android客户端--博客园篇

2015年尾了,闲了半年,也忙了半年 年尾了,趁着不忙的这段时间,好好梳理梳理 每天逛逛技术博客的习惯从大学一直延续到现在,博客园,csdn,iteye,51CTO,ITPUB之类的 浏览器里面一个个书签,每次打开又关上,一天天重复,一天天的了解着最新的技术资源 终于开始想着,开发一个Android的app来把这些资源整合起来,不仅能节约时间,还能趁机会好好检验下近一年来Android的技术 先上图,今天晚上才开始的 目前:暂时只有博客园首页的文章列表和文章详情的展示界面 主要涉及技术点: 1.