溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

常用API-Hashset、迭代器、重寫equals

發(fā)布時(shí)間:2020-07-13 23:24:56 來(lái)源:網(wǎng)絡(luò) 閱讀:521 作者:glblong 欄目:開(kāi)發(fā)技術(shù)

 

  1. import java.util.HashSet; 
  2. import java.util.Iterator; 
  3.  
  4. public class fuxi4_hashset 
  5.     public static void main(String[] args) 
  6.     { 
  7.         /************************* 容器間Hashset、迭代器 *************************************************/ 
  8.         HashSet<Student> stu = new HashSet<Student>();//去重復(fù),按容器自己的順序排列 
  9.         Student s1 = new Student("tom"25); 
  10.         Student s2 = new Student("jerry"23); 
  11.         Student s3 = new Student("jerry"23); 
  12.         Student s4 = new Student("tom"22); 
  13.         stu.add(s1); 
  14.         stu.add(s2); 
  15.         stu.add(s3); 
  16.         stu.add(s4); 
  17.          
  18.         Iterator itr = stu.iterator();// 創(chuàng)建迭代器 
  19.         while(itr.hasNext()) 
  20.         { 
  21.             Student str = (Student) itr.next(); 
  22.             System.out.println(str); 
  23.         }   
  24.     } 
  25.      
  26.     /************************* 重寫equals方法 *************************************************/ 
  27.     /** 
  28.      * public boolean equals(Object obj) 
  29.     { 
  30.         System.out.println("asdf"); 
  31.         if (obj instanceof Student) 
  32.         { 
  33.             Student s = (Student) obj; 
  34.              
  35.             if (this.name.equals(s.name) && this.age == s.age) 
  36.             { 
  37.                 return true; 
  38.             } 
  39.             else 
  40.             { 
  41.                 return false; 
  42.             } 
  43.         } 
  44.         else 
  45.         { 
  46.             System.out.println("null"); 
  47.             return false; 
  48.         } 
  49.     } 
  50.      */ 
  51.  
  52.  
  53. class Student 
  54.     String name; 
  55.     int age; 
  56.     public Student(String name, int age) 
  57.     { 
  58.         this.name = name; 
  59.         this.age = age; 
  60.     } 
  61.     @Override 
  62.     public String toString() 
  63.     { 
  64.         return "Student [name=" + name + ", age=" + age + "]"
  65.     } 
  66.     @Override 
  67.     public int hashCode() 
  68.     { 
  69.         final int prime = 31
  70.         int result = 1
  71.         result = prime * result + age; 
  72.         result = prime * result + ((name == null) ? 0 : name.hashCode()); 
  73.         return result; 
  74.     } 
  75.     @Override 
  76.     public boolean equals(Object obj) 
  77.     { 
  78.         if (this == obj) 
  79.             return true
  80.         if (obj == null
  81.             return false
  82.         if (getClass() != obj.getClass()) 
  83.             return false
  84.         Student other = (Student) obj; 
  85.         if (age != other.age) 
  86.             return false
  87.         if (name == null
  88.         { 
  89.             if (other.name != null
  90.                 return false
  91.         } 
  92.         else if (!name.equals(other.name)) 
  93.             return false
  94.         return true
  95.     } 

 

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI