美文网首页
什么是hashcode

什么是hashcode

作者: 铁木真Nu1 | 来源:发表于2018-07-27 10:34 被阅读0次

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

    声明:本文的内容大部分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

          本文链接:https://www.haomeiwen.com/subject/vhsimftx.html