1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      equals和hashcode是什么-創(chuàng)新互聯(lián)

      小編給大家分享一下equals和hashcode是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

      成都創(chuàng)新互聯(lián)公司基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)眉山服務(wù)器托管報(bào)價,主機(jī)托管價格性價比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。

      equals和hashcode總結(jié):

      equals方法沒有重寫的話,用于判斷對象的內(nèi)存地址引用是否是用一個地址。重寫之后一般用來比較對象的內(nèi)容是否相等(比如student對象,里面有姓名和年齡,我們重寫equals方法來判斷只要姓名和年齡相同就認(rèn)為是用一個學(xué)生)。

      hashCode是jdk根據(jù)對象的地址或者字符串或者數(shù)字算出來的int類型的數(shù)值,當(dāng)然你也可以重寫它,hashcode方法只有在集合中用到。

      對象放入集合中時,先判斷hashcode是否相等,再判斷equals是否相等,都相等就算是同一個對象,list則可以放入,set因?yàn)椴辉试S重復(fù)所以不會放入。

      例如:

      public class Student {
              private int age;
              private String name; 
              public Student(int age ,String name){
                  this.age = age;
                  this.name = name;
              }
              public int getAge() {
                 return age;
              }
              public void setAge(int age) {
                  this.age = age;
              }
              public String getName() {
                 return name;
              }
              public void setName(String name) {
                  this.name = name;
              }
              //重寫equals方法,判斷姓名和年齡相同就是相等的
              public boolean equals(Object o){
                  if(o == null){
                      return false;
                  }
                  if(this.getClass() != o.getClass()){
                   return false;   
                  }
                  Student student = (Student)o;
                  if(name == null){
                      return false;
                  }
                  if(age==student.getAge()&&name.equals(student.getName())){
                      return true;
                  }
                  return false;
              }       
          public static void main(String[] args) {
              Student studentOne = new Student(1,"yjc");
              Student studentTwo = new Student(1,new String("yjc"));
              System.out.println(studentOne.equals(studentTwo));
              System.out.println("1: "+studentOne.getName().hashCode());
              System.out.println("2: "+studentTwo.getName().hashCode());
          }
          //輸出結(jié)果:true
                      1: 119666
                      2: 119666
      }

      以上可以看出,兩個String都叫"yjc",無論是直接"yjc"還是new String("yjc"),他們的hashcode都相同。所以在重寫hashcode方法時可以運(yùn)用這一點(diǎn)。

      比如你希望如果姓名和年齡相同,不僅equals相同,他們的hashcode也要相同,可以這樣重寫hashcode:

      public int hashcode(){
          final int prime = 31; 
          int result = 1;    
          result = prime*result + age;    
          result = prime*result + (name == null? 0 : name.hashcode());   
          return result;//直接寫age+(name == null? 0 : name.hashcode())也行就是感覺太簡單了0.0
      }

      這樣一來兩個姓名和年齡相同的Student對象就是同一個對象了,放入set中會被認(rèn)為是同一個,無論放幾個這樣的對象,set.size()都是等于1。

      同樣,HashMap因?yàn)閗ey也是唯一的,HashMap對象是根據(jù)其Key的hashCode來定位存儲位置,并使用equals(key)獲取對應(yīng)的Value,所以在put時判斷key是否重復(fù)用到了hashcode和equals,若重復(fù)了則會覆蓋。

      看完了這篇文章,相信你對equals和hashcode是什么有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝各位的閱讀!

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


      網(wǎng)頁名稱:equals和hashcode是什么-創(chuàng)新互聯(lián)
      路徑分享:http://www.ef60e0e.cn/article/geoho.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        巴马| 南漳县| 桃园市| 杭锦后旗| 宜章县| 临湘市| 确山县| 芮城县| 溧水县| 民勤县| 二手房| 巫溪县| 缙云县| 碌曲县| 玉田县| 中山市| 昂仁县| 淮滨县| 阿荣旗| 桦甸市| 正定县| 尼玛县| 邵东县| 遂宁市| 阿拉善左旗| 安平县| 肥东县| 电白县| 台北县| 吴川市| 商都县| 榆树市| 澄迈县| 浑源县| 新郑市| 芮城县| 苍山县| 陆丰市| 鄢陵县| 河北省| 昭苏县|