hashcode

  • hashcode是什麼?

     Object類中的hashcode是對象在內存中的地址轉化爲int。(可當做內存地址)。

  • hashcode有什麼用?
	hashcode在Java中主要用於集合中,集合中的元素要求唯一性,當集合中已存在大量元素時,此時若要新添加一個新元素,則要將此新元素與舊元素一一進行equals比較,代價太大。固引入hashcode, 這樣一來,當集合要添加新的元素時,先調用這個元素的hashCode方法,就一下子能定位到它應該放置的物理位置上。如果這個位置上沒有元素,它就可以直接存儲在這個位置上,不用再進行任何比較了;如果這個位置上已經有元素了,就調用它的equals方法與新元素進行比較,相同的話就不存了,不相同就散列其它的地址。
  • JAVA中的規定
1、如果兩個對象相同,那麼它們的hashCode值一定要相同;
2、如果兩個對象的hashCode相同,它們並不一定相同    上面說的對象相同指的是用eqauls方法比較。   
你當然可以不按要求去做了,但你會發現,相同的對象可以出現在Set集合中。同時,增加新元素的效率會大大下降

   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章