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

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

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

    Tin's Blog

    You are coming a long way, baby~Thinking, feeling, memory...

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      128 隨筆 :: 0 文章 :: 221 評論 :: 0 Trackbacks

    hashCode:
    他是用來產生hash值的,用在Hashtable上,也包括HashMap等實現。
    hashCode的基本約定是:
    1、hashCode方法在同一個object上不管被調用了多少次,在同一次執行的Java程序中,hashCode方法必須返回一個持續相同的int。在object被修改時,不給equals方法提供信息。這個int值在同一個程序的兩次不同執行過程中(同一程序執行兩次),不需要保持恒定。
    2、如果兩個object通過equals()方法判斷相等,則調用它們的hashCode方法應該產生相同的結果。
    3、兩個通過equals()方法判定不相等的object,調用它們的hashCOde方法并不是必須返回不同的結果。但是,成序言們應該意識到對于不相等的object產生不同的int結果有助于提升hashtables的效率。
    一般技術上,通過將object的內部地址轉換為integer的方法來產生hashCode,但這不是必需的。

    equals:
    就是判斷是否相等的方法。
    基本約定如下:
    自反:就是x.equals(x)應該返回true
    對稱:x.equals(y)返回true則y.equals(x)返回true
    傳遞:x.euqls(y)==true,y.equals(z)==true,那么x.equals(z)也必須返回true
    持續性:就是說如果x.equals(y)==true,不管它調用多少次都應該返回true
    非空引用:x.equals(null)應該返回false

    準則原因這里:
    http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html#hashCode()

    在實際Domain中如何實現他們比較好呢?從eclipseWork中的模板生成如下:

    public boolean equals(Object rhs) {
            
    if (rhs == null{
                
    return false;
            }


            
    if (!(rhs instanceof Town)) {
                
    return false;
            }


            Town that 
    = (Town) rhs;

            
    if ((this.getId() == null|| (that.getId() == null)) {
                
    return false;
            }


            
    return (this.getId().equals(that.getId()));
        }

    public int hashCode() {
            
    if (this.hashValue == 0{
                
    int result = 17;
                
    int idValue = (this.getId() == null? 0 : this.getId().hashCode();
                result 
    = (result * 37+ idValue;
                
    this.hashValue = result;
            }


            
    return this.hashValue;
        }

    下一步還要繼續研究,上面的的方法很類似于“Java theory and practice: Hashing it out”
    http://www-128.ibm.com/developerworks/java/library/j-jtp05273.html
    posted on 2006-02-15 11:34 Tin 閱讀(641) 評論(0)  編輯  收藏 所屬分類: Hibernate相關
    主站蜘蛛池模板: 久久久www成人免费毛片| 亚洲AV电影院在线观看| 亚洲乱码日产精品a级毛片久久 | 最近免费中文字幕大全高清大全1| 2022久久国产精品免费热麻豆| 色妞WWW精品免费视频| 亚洲国产精品不卡毛片a在线| 亚洲成A人片在线观看无码不卡| 亚洲噜噜噜噜噜影院在线播放| 亚洲精品无码专区在线| 免费亚洲视频在线观看| 午夜免费啪视频在线观看| 成人免费777777| 久久亚洲国产精品123区| 亚洲成人黄色在线观看| 日本一区二区在线免费观看| 免费人妻无码不卡中文字幕系| 日韩一区二区在线免费观看| 亚洲国产精品国自产拍电影| 亚洲av无码专区亚洲av不卡| 特级精品毛片免费观看| 免费jjzz在在线播放国产| 亚洲伊人tv综合网色| 一个人免费观看视频在线中文| 国产免费AV片在线播放唯爱网| 亚洲欧洲久久av| 亚洲日本天堂在线| 2021精品国产品免费观看| 最新亚洲成av人免费看| 亚洲伊人久久大香线蕉AV| 暖暖日本免费中文字幕| 亚洲国产成人久久综合碰| 在线观看亚洲AV日韩AV| 91在线老王精品免费播放| 中文字幕一精品亚洲无线一区| 精品无码专区亚洲| 啦啦啦高清视频在线观看免费| 亚洲AV无码不卡在线播放| 一级人做人爰a全过程免费视频| 免费看的黄色大片| 亚洲av乱码一区二区三区|