hashCode函数和toString函数也在Object类中,同样,所有的类都继承了这2个函数。

hashCode函数用于生成哈希码,没有参数,返回值为整型

把u的值作为键存入map中,使用get方法传入的键值和u的值是一样的,但结果却为null。因为map并不是根据传入的键去进行一一比较来配对,而是通过计算对象的hashcode来判断在HashMap中有没有存在相应的值。此处调用的是默认的hashCode方法,对于内存中不同的对象生成的哈希码是不一样的,但从逻辑上来说,如果两个对象使用equals函数相比较是相等的,那么这两个对象调用hashCode生成的哈希码应该是相等的,根据这一原则来复写hashCode函数。

public int hashCode(){
	int result =17;
	result = 31 * result +age;
	result = 31 * result +name.hashCode();
	return result;
}

toString函数用于把一个对象转换成字符串,了解对象内部情况,使程序拥有更好的可读性。复写toString函数:

public String toString(){
	String result = "age:" + age + "," + "name:" + name;
	return result;
}

hashCode()和toString()的更多相关文章

  1. 复写equals、hashCode和toString方法

    equals.hashCode和toString 这三个方法都是object类的方法,由于所有的类都是继承这个类,所以每一个类都有这三个方法. 1.复写equals方法 原则: 首先,两个实例是相同的 ...

  2. Java:验证在类继承过程中equals()、 hashcode()、toString()方法的使用

    以下通过实际例子对类创建过程汇中常用的equals().hashcode().toString()方法进行展示,三个方法的创建过程具有通用性,在项目中可直接改写. //通过超类Employee和其子类 ...

  3. 第38节:hashCode()与toString()与equals()函数的作用,内部类和匿名内部类

    hashCode()和toString() Hash算法是把任意长度的数据通过hash算法成为散列值 hashCode() public int hashCode(){ int result = 10 ...

  4. 借助强大的IDEA开发ide高效实现equals,hashcode以及toString方法

    IDEA工具提供多种生成hashCode与equals的代码方案,注意:尽量不要使用第一个方案,第一个方案对于null不做判空处理,容易NNP问题. 对于生成toString方法方案,默认使用的是+拼 ...

  5. Java基础(六)判断两个对象相等:equals、hashcode、toString方法

    1.equal方法 Object类中的equal方法用于检测一个对象是否等于另外一个对象.在Object类中,这个方法将判断两个对象是否具有相同的引用.如果两个对象具有相同的引用,它们一定是相等的.然 ...

  6. 【原创】关于java对象需要重写equals方法,hashcode方法,toString方法 ,compareto()方法的说明

    在项目开发中,我们都有这样的经历,就是在新增表时,会相应的增加java类,在java类中都存在常见的几个方法,包括:equals(),hashcode(),toString() ,compareto( ...

  7. How to implement equals() and hashCode() methods in Java[reproduced]

    Part I:equals() (javadoc) must define an equivalence relation (it must be reflexive, symmetric, and ...

  8. equals()与 == 比较,hashCode方法

    1.Object类    Object类是java中一切类的父类,java中所有的类都直接或间接    继承自Object类        Object中定义的方法不多,原因在于,java的类多种多样 ...

  9. java的toString()及包装类的实现--Integer重点学习

    1. toString()来源 2. toString()目的 3. toString()实现(JDK8) 1. toString()来源 源于java.lang.Object类,源码如下: /** ...

随机推荐

  1. iptable怎么用?

    iptables -A FORWARD -s 10.0.0.0/8  -p tcp  --dport  80  -j DROP [拒绝转发来自10.0.0.0/8网段,目的端口是80的数据包]

  2. 网易音乐API

    本次分析的是网易音乐API 歌曲搜索API:http://music.163.com/api/search/get/web?csrf_token= 需要用POST来获取 参数: Referer=htt ...

  3. 传智Java基础知识测试

    共40道选择题,每题2.5分.多选题有错则全错,全对才满分. 单选题: 1.   下列哪个声明是错误的?(B) A.  int  i=10; B.  float  f=1.1; C.  double  ...

  4. 全局变量&局部变量

    一.局部变量: 定义在函数内部的变量以及函数的形参成为局部变量 作用于:从定义那一行开始知道与其所在的代码块结束 生命周期:从程序运行到定义那一行开始分配存储空间到程序离开该变量所在的作用域 特点: ...

  5. Oracle之别名小结

    今天在写一个简单的SQL语句并执行时抛出了如下图所示的一个错误提示信息! 恩,此异常信息很明显,在SQL语句中标示符的长度过长了,简短一些就应该没问题了,我查看了一下我的SQL语句发现是我的查询字段的 ...

  6. BZOJ1996 合唱队 区间DP

    OJ地址:http://www.lydsy.com/JudgeOnline/problem.php?id=1996 设dp(i,j,k)代表在理想结果中[i,j]段最后添加的是i或j(k=0or1) ...

  7. file not found while xcode archive

    今天碰到一个问题,就是我像在我的ios app中添加支付宝功能,按照文档我添加好了测试也成功,但是在archive的时候就是出问题,很奇怪.最后网上查了文档,最后在stackoverflow上面找到了 ...

  8. Date获取时间段

    /** * */ package com.chinabase.common.util; /** * @author yuanji * @created on:Sep 19, 2008 */ impor ...

  9. 【Linux】部署cobbler

    环境Centos 6.3,本地挂载镜像配置本地yum源 yum -y install dhcp httpd xinetd tftp-server http://dl.fedoraproject.org ...

  10. 搭建Android手机系统开发环境(转)

    Android作为近来表现十分强劲的手机操作系统,越来越受到开发人员的青睐,本篇文章将带领大家从零开始打造属于自己的开发环境. 一.JDK下载安装 JDK全称是Java Development Kit ...