<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    hashCode 方法實現(xiàn)規(guī)則

    1、把某個非零常數(shù)值,比如說17,保存在一個叫result 的int 類型的變量值中。

    2、對于對象中的每一個關(guān)鍵域f (指equals 方法中考慮的每一個域),完成以下步驟:

    • 為該域計算int 類型的散列碼c:
      • 如果該域是boolean 類型,則計算(f ? 1 : 0);
      • 如果該域是byte、char、short 或者int 類型,則計算(int)f;
      • 如果該域是long 類型,則計算(int)(f ^ (f >>> 32));
      • 如果該域是float 類型,則計算Float.floatToIntBits(f);
      • 如果該域是double 類型,則計算Double.doubleToLongBits(f) 得到一個long 類型的值,然后按照步驟2.a.iii 對該long 類型計算散列值;
      • 如 果該域是一個對象引用,并且該類的equals 方法通過遞歸調(diào)用equals 的方式來比較這個域,則同樣對這個域遞歸調(diào)用hashCode 方法;如果要求一個更為復雜的比較,則為這個域計算一個“規(guī)范表示”,然后針對這個規(guī)范表示調(diào)用hashCode。如果這個域的值為null,則返回0;
      • 如果該域是一個數(shù)組,則把每一個元素當做單獨的域來處理。然后根據(jù)步驟2.b 中的做法把這些散列值組合起來。

    • 按照下面的公式,把步驟a 中計算得到的散列碼c 組合到result 中:
      result = 37 * result + c;

    3、返回result 值。

    注:根據(jù)實踐經(jīng)驗,在對ASCII 串的散列函數(shù)中,31 和37 是很好的散列因子。

    posted on 2006-09-13 18:33 JRobot 閱讀(281) 評論(0)  編輯  收藏 所屬分類: java_基礎(chǔ)

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲а∨天堂久久精品9966| 在线观看亚洲av每日更新| 亚洲一区二区电影| 久久青草91免费观看| 亚洲制服中文字幕第一区| 日本亚洲欧洲免费天堂午夜看片女人员| 337p日本欧洲亚洲大胆裸体艺术| 一级视频在线免费观看| 亚洲中文字幕无码久久精品1 | 成人黄色免费网站| 亚洲综合久久成人69| 1a级毛片免费观看| 亚洲AV无码成人专区| 性感美女视频免费网站午夜| 亚洲国产日韩a在线播放| 免费一区二区视频| 久青草视频97国内免费影视| 无码欧精品亚洲日韩一区| 久久免费看黄a级毛片| 亚洲人成网亚洲欧洲无码| 免费a级毛片视频| 国产免费一区二区三区不卡| 久久亚洲日韩精品一区二区三区| 波多野结衣在线免费视频| 亚洲av无码一区二区三区人妖| 亚洲AV之男人的天堂| 久久成人无码国产免费播放| 91亚洲国产成人久久精品| 国产无遮挡吃胸膜奶免费看| 中文字幕av免费专区| 亚洲午夜精品一区二区公牛电影院| 成人在线视频免费| a级在线免费观看| 亚洲熟女www一区二区三区| 久久亚洲精品无码观看不卡| 日韩免费无码一区二区三区| 亚洲av无码专区首页| 亚洲va中文字幕无码久久不卡 | www国产亚洲精品久久久日本| 两个人日本免费完整版在线观看1| 亚洲国产成人综合|