麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

hashcode和equals的作用

2019-11-10 19:50:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

hashCode是用于查找使用的,而equals是用于比較兩個(gè)對(duì)象的是否相等的。

以下這段話(huà)是從別人帖子回復(fù)拷貝過(guò)來(lái)的:

1.hashcode是用來(lái)查找的,如果你學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu)就應(yīng)該知道,在查找和排序這一章有 例如內(nèi)存中有這樣的位置 0 1 2 3 4 5 6 7 而我有個(gè)類(lèi),這個(gè)類(lèi)有個(gè)字段叫ID,我要把這個(gè)類(lèi)存放在以上8個(gè)位置之一,如果不用hashcode而任意存放,那么當(dāng)查找時(shí)就需要到這八個(gè)位置里挨個(gè)去找,或者用二分法一類(lèi)的算法。 但如果用hashcode那就會(huì)使效率提高很多。 我們這個(gè)類(lèi)中有個(gè)字段叫ID,那么我們就定義我們的hashcode為ID%8,然后把我們的類(lèi)存放在取得得余數(shù)那個(gè)位置。比如我們的ID為9,9除8的余數(shù)為1,那么我們就把該類(lèi)存在1這個(gè)位置,如果ID是13,求得的余數(shù)是5,那么我們就把該類(lèi)放在5這個(gè)位置。這樣,以后在查找該類(lèi)時(shí)就可以通過(guò)ID除 8求余數(shù)直接找到存放的位置了。

2.但是如果兩個(gè)類(lèi)有相同的hashcode怎么辦那(我們假設(shè)上面的類(lèi)的ID不是唯一的),例如9除以8和17除以8的余數(shù)都是1,那么這是不是合法的,回答是:可以這樣。那么如何判斷呢?在這個(gè)時(shí)候就需要定義 equals了。 也就是說(shuō),我們先通過(guò) hashcode來(lái)判斷兩個(gè)類(lèi)是否存放某個(gè)桶里,但這個(gè)桶里可能有很多類(lèi),那么我們就需要再通過(guò) equals 來(lái)在這個(gè)桶里找到我們要的類(lèi)。 那么。重寫(xiě)了equals(),為什么還要重寫(xiě)hashCode()呢? 想想,你要在一個(gè)桶里找東西,你必須先要找到這個(gè)桶啊,你不通過(guò)重寫(xiě)hashcode()來(lái)找到桶,光重寫(xiě)equals()有什么用啊


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品一区二区在线观看视频 | 午夜视频在线免费 | 久久久久久久91 | 亚洲精品 欧美 | 免费人成年短视频在线观看网站 | 亚洲国产美女视频 | 91精品国| 国产88久久久国产精品免费二区 | 国产免费成人 | 亚洲欧美日韩中文在线 | 亚洲一区在线国产 | 得得啪在线视频 | 免费久久久久久久 | 精精国产xxxx视频在线野外 | 午夜生活理论片 | 激情小说激情电影 | 国产精品1区2区在线观看 | 成人免费在线视频 | 87成人免费看片 | 精品久久久久久久久久久aⅴ | 嗯~啊~弄嗯~啊h高潮视频 | 亚洲综合视频网 | 久久国产乱子伦精品 | 视频一区二区三区在线播放 | 国产羞羞网站 | 国产成人自拍视频在线观看 | 欧美日韩在线播放一区 | 国产免费一区 | 亚洲综合视频网站 | av免费不卡国产观看 | av手机免费在线观看 | 国产精品麻豆一区二区三区 | 成人国产精品免费 | 久久免费精品 | 久久精品毛片 | fc2成人免费人成在线观看播放 | 1314av| 黄色大片在线免费观看 | 国产一区二区三区在线观看视频 | 欧美成人二区 | 久久免费视频5 |