什么是hashcode

当你不会写文章的时候,那你就复制一些。。。时间久了说不定就会了呢

声明:本文的内容大部分copy了参考文章的内容,如果想看原文章,请点击下面链接。本文纯属自己复习用。

参考文章:

http://www.cnblogs.com/whgk/p/6071617.html

1.什么是hash,hash值怎样生成的.

hash 翻译做“散列”,也可直译为“哈希”,就是把任意长度的值输入,通过hash()函数输出固定长度的消息摘要。 hash函数也有很多种,包括:直接取余法,乘法取整法,平方取中法,暂时先了解有这些方法即可。

hash表是啥?  hash表是由hash值组成的。

举例: hashcode有1,2,3,4,5,6,7,8个这样的位置。

2.HashCode的作用

HashCode的存在主要是为了查找的快捷性,HashCode是用来在散列存储结构中确定对象的存储地址的(用HashCode来代表对象就是在hash表中的位置).

    如:存储1000个数,存储到了900,就先遍历900是否已经被存储,要遍历900次,如果没有就存储,这样会消耗很多时间。如果用hash存储,如hash表中有1,2,3,4,5,6,7,8个这样的位置.如果已经存储了100个数,当存储hashcode为1,那么就有20个数字和他的hashcode相同,只需要跟着20个数字相比较(使用equals),如果都不相同,就存储在1的位置。通过与原始方法的对比就知道hashcode具有很大的优势。

    为什么要用equals方法呢,当查找某个对象的时候因为hash表的每个位置存储的可能不止一个值,那怎样判断当前的对象是否就是查找的对象呢,这个时候就需要用到equals方法。

3.为什么equals方法要与hashcode方法一起重写

复制上面链接的作者博文内的


String 类中的hashCode


HashMap中的hashCode()方法


你可能感兴趣的:(什么是hashcode)