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

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

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

    北大青鳥IT教育博客

     

    JAVA中equals方法用法

      今天給學生講解ArrayList集合用法,講到contains方法的用法時,學生出現一個怪問題,contains方法檢查集合是否包含對象時,明明包含該對象,但有時候返回false,有時候返回true。
      既然問到這個問題,就要從其源頭來找原因,我帶領他們查看contains方法的源代碼,如下:
      public boolean contains(Object o) {
      return indexOf(o) >= 0;
      }
      于是我們找到indexOf方法的源代碼,如下:
      public int indexOf(Object o) {
      if (o == null) {
      for (int i = 0; i < size; i++)
      if (elementData[i]==null)
      return i;
      } else {
      for (int i = 0; i < size; i++)
      if (o.equals(elementData[i]))
      return i;
      }
      return -1;
      }
      發現最終如果對象不為空的情況下是用equals方法來比較對象是否相等的。于是繼續找到equals的源代碼,如下:
      public boolean equals(Object obj) {
      return (this == obj);
      }
      終于發現原因所在,原來Object中的equals方法是用==來比較兩個對象的,那么在我們自己寫的實體類中必須重寫equals方法,最后修改如下:
      public class User {
      private String name;
      private String pass;
      public User(String name, String pass) {
      super();
      this.name = name;
      this.pass = pass;
      }
      public User() {
      super();
      }
      public String getName() {
      return name;
      }
      public void setName(String name) {
      this.name = name;
      }
      public String getPass() {
      return pass;
      }
      public void setPass(String pass) {
      this.pass = pass;
      }
      @Override
      public boolean equals(Object obj) {
      if(obj == null){
      return false;
      }
      if(this == obj){
      return true;
      }
      if(obj instanceof User){
      User u = (User)obj;
      if(this.name.equals(u.name)){
      return true;
      }else{
      return false;
      }
      }else{
      return false;
      }
      }
      }
      測試了一下,通過。(北大青鳥武漢魯廣校區 王老師指導)

    posted on 2009-08-28 14:14 武漢北大青鳥 閱讀(584) 評論(0)  編輯  收藏


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


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章檔案

    默認

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 91免费在线视频| 一级毛片高清免费播放| 中文字幕在线观看免费视频| 久久精品亚洲男人的天堂| 免费无遮挡无遮羞在线看| 亚洲av中文无码| 一个人看的www免费高清| 国产偷窥女洗浴在线观看亚洲| 免费国产污网站在线观看不要卡| 免费在线观看黄网站| 一级做a爰片性色毛片免费网站| 亚洲国产成人影院播放| 精品一区二区三区高清免费观看 | 亚洲免费福利在线视频| 国产卡一卡二卡三免费入口| 亚洲喷奶水中文字幕电影| 国国内清清草原免费视频99| 亚洲欧美日韩自偷自拍| 四虎影视永久免费观看网址| g0g0人体全免费高清大胆视频| 好看的电影网站亚洲一区| 最近2019免费中文字幕6| 亚洲精品天堂在线观看| 亚洲国产精品综合久久网络| 久久不见久久见免费影院www日本| 国产亚洲真人做受在线观看| 精品久久8x国产免费观看| 亚洲综合av一区二区三区不卡| 免费人成在线观看网站视频| 中国好声音第二季免费播放| 亚洲狠狠ady亚洲精品大秀| 在线观看免费国产视频| 国产人成网在线播放VA免费| 久久精品a亚洲国产v高清不卡| 女人被免费视频网站| 人妻18毛片a级毛片免费看| 亚洲欧洲国产日韩精品| 日韩在线免费播放| 成人性做爰aaa片免费看| 亚洲人成www在线播放| 亚洲综合久久夜AV |