hashcode

来源:互联网 发布:穆赫兰道 知乎 编辑:程序博客网 时间:2024/06/16 14:54

  • hashcode是什么?

     Object类中的hashcode是对象在内存中的地址转化为int。(可当做内存地址)。

  • hashcode有什么用?
hashcode在Java中主要用于集合中,集合中的元素要求唯一性,当集合中已存在大量元素时,此时若要新添加一个新元素,则要将此新元素与旧元素一一进行equals比较,代价太大。固引入hashcode, 这样一来,当集合要添加新的元素时,先调用这个元素的hashCode方法,就一下子能定位到它应该放置的物理位置上。如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;如果这个位置上已经有元素了,就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址。
  • JAVA中的规定
1、如果两个对象相同,那么它们的hashCode值一定要相同;
2、如果两个对象的hashCode相同,它们并不一定相同    上面说的对象相同指的是用eqauls方法比较。   
你当然可以不按要求去做了,但你会发现,相同的对象可以出现在Set集合中。同时,增加新元素的效率会大大下降


   
0 0