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

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

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

    Be alaways javaing...

    Loving Java
    posts - 43, comments - 5, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Java中equals() hashcode()方法

    Posted on 2008-08-04 14:38 追風(fēng)舞者 閱讀(195) 評論(0)  編輯  收藏 所屬分類: J2SE

          Java語言中的equals的規(guī)范:

              1. 自反性:對于任何一個非空引用xx.equals(x)應(yīng)該返回true
        2. 對稱性:對于任何引用xy,如果x.equals(y)返回true,那么y.equals(x)也應(yīng)該返回true
        3. 傳遞性:對于任何引用xyz,如果x.equals(y)返回truey.equals(z)返回true,那么x.equals(z)也應(yīng)該返回true
        4. 一致性:如果xy引用的對象沒有發(fā)生變化,那么反復(fù)調(diào)用x.equals(y)應(yīng)該返回同樣的結(jié)果。
        5. 對于任何非空引用xx.equals(null)應(yīng)該返回false

     public boolean equals(Object obj) {
      boolean result = false;
      if (this == obj)
       return true;
      if (!(obj instanceof Student))
       return false;
      Student objTemp = (Student) obj;
      if (this.getId() == objTemp.getId())
       result = true;
      return result;
     }

    Java語言中的hashcode:

      1. 將一個非0常數(shù),例如17,儲存于int result變量中。
      2. 對對象中的每一個有意義的字段f(更確切地說是被equals()所考慮的每一個字段)進行如下處理:
        A. 對這個字段計算出型別為int的hash 碼 c:
          i. 如果字段是個boolean,計算(f ? 0 : 1)。
          ii. 如果字段是個byte,char,short或int,計算(int)f。
          iii. 如果字段是個long,計算(int)(f^(f >>> 32))。
          iv. 如果字段是個float,計算Float.floatToIntBits(f)。
          v. 如果字段是個double,計算Double.doubleToLongBits(f),然后將計算結(jié)果按步驟2.A.iii處理。
          vi. 如果字段是個object reference,而且class 的equals()透過「遞歸呼叫equals()」的方式來比較這一字段,那么就同樣也對該字段遞歸呼叫hashCode()。
          vii. 如果字段是個array,請將每個元素視為獨立字段。也就是說對每一個有意義的元素施行上述規(guī)則,用以計算出hash 碼,然后再依步驟2.B將這些數(shù)值組合起來。
        B. 將步驟A計算出來的hash碼 c按下列公式組合到變量result中:result = 37*result + c;
     3. 傳回result。
     4. 完成hashCode()之后,反躬自省一下:是否相等的實體具有相等的hash 碼?如果不是,找出原因并修正問題。

    主站蜘蛛池模板: 久青草视频97国内免费影视| 亚洲一级高清在线中文字幕| 国产精品亚洲lv粉色| 99久久免费精品国产72精品九九| 久久亚洲精品成人无码网站 | 夜夜爽妓女8888视频免费观看| 国产在线19禁免费观看| 亚洲熟妇无码av另类vr影视| 色婷婷7777免费视频在线观看 | 亚洲AV色无码乱码在线观看 | 在线看片人成视频免费无遮挡| 亚洲欧洲日韩极速播放| 免费看美女让人桶尿口| 特级毛片A级毛片100免费播放 | 亚洲色婷婷六月亚洲婷婷6月| rh男男车车的车车免费网站| 亚洲日本va中文字幕久久| 久久精品视频免费| 亚洲白嫩在线观看| 无码人妻一区二区三区免费手机 | 免费萌白酱国产一区二区三区| 亚洲AV人人澡人人爽人人夜夜| 亚洲视频在线免费看| 亚洲乱码在线观看| 亚洲国产成人精品无码久久久久久综合 | 韩国亚洲伊人久久综合影院| 亚洲日韩国产成网在线观看| 久久国产乱子免费精品| 亚洲人成黄网在线观看| 免费人成在线观看视频播放| 国产精品内射视频免费| 91亚洲va在线天线va天堂va国产| 成年大片免费视频| 一区二区三区免费在线视频| 亚洲激情视频在线观看| 黄网址在线永久免费观看 | 亚洲成AV人片在线观看ww| 四虎影视www四虎免费| 99精品免费视品| 亚洲午夜福利在线视频| 在线亚洲精品福利网址导航|