1. 程式人生 > >雙列集合Map的特點

雙列集合Map的特點

  1 import java.util.HashMap;
  2 import java.util.Map;
  3 /**
  4  * 雙列集合Map的特點:
  5  * 如果鍵是自定義物件,必須重寫equals和hashcode方法  
  6  * @author 羅摩銜那
  7  *
  8  */
  9 public class Demo_Maps
 10 {
 11   public static void main(String[] args) 
 12   {     
 13     //自定義一個容器
 14       Map<IdCard,people>map=new
HashMap<>(); 15 //初始兩個鍵 16 IdCard idcard1=new IdCard("張三丰", "001"); 17 IdCard idcard2=new IdCard("張三丰", "001"); 18 //對應鍵值 19 map.put(idcard1, new people("張三丰", "男", "200")); 20 map.put(idcard2, new people("張三丰", "男", "100")); 21 System.out.println(map);
22 } 23 } 24 25 class people 26 { 27 private String name; 28 private String gender; 29 private String age; 30 31 public people(String name,String gender,String age) 32 { 33 this.name=name; 34 this.gender=gender; 35 this.age=age;
36 } 37 38 @Override 39 public String toString() { 40 return "name=" + name + ", gender=" + gender + ", age=" + age ; 41 } 42 43 @Override 44 public int hashCode() { 45 final int prime = 31; 46 int result = 1; 47 result = prime * result + ((age == null) ? 0 : age.hashCode()); 48 result = prime * result + ((gender == null) ? 0 : gender.hashCode()); 49 result = prime * result + ((name == null) ? 0 : name.hashCode()); 50 return result; 51 } 52 53 @Override 54 public boolean equals(Object obj) { 55 if (this == obj) 56 return true; 57 if (obj == null) 58 return false; 59 if (getClass() != obj.getClass()) 60 return false; 61 people other = (people) obj; 62 if (age == null) { 63 if (other.age != null) 64 return false; 65 } else if (!age.equals(other.age)) 66 return false; 67 if (gender == null) { 68 if (other.gender != null) 69 return false; 70 } else if (!gender.equals(other.gender)) 71 return false; 72 if (name == null) { 73 if (other.name != null) 74 return false; 75 } else if (!name.equals(other.name)) 76 return false; 77 return true; 78 } 79 80 } 81 82 class IdCard 83 { 84 private String name; 85 private String ID; 86 public IdCard(String name,String ID) 87 { 88 this.name=name; 89 this.ID=ID; 90 } 91 @Override 92 public String toString() { 93 return "name=" + name + ", ID=" + ID ; 94 } 95 @Override 96 public int hashCode() { 97 final int prime = 31; 98 int result = 1; 99 result = prime * result + ((ID == null) ? 0 : ID.hashCode()); 100 result = prime * result + ((name == null) ? 0 : name.hashCode()); 101 return result; 102 } 103 @Override 104 public boolean equals(Object obj) { 105 if (this == obj) 106 return true; 107 if (obj == null) 108 return false; 109 if (getClass() != obj.getClass()) 110 return false; 111 IdCard other = (IdCard) obj; 112 if (ID == null) { 113 if (other.ID != null) 114 return false; 115 } else if (!ID.equals(other.ID)) 116 return false; 117 if (name == null) { 118 if (other.name != null) 119 return false; 120 } else if (!name.equals(other.name)) 121 return false; 122 return true; 123 } 124 }

 1 import java.util.HashMap;
 2 import java.util.Map;
 3 /**
 4  * 雙列集合Map的特點:
 5  *  鍵值對只能是意義對應
 6  *     新增鍵值對的時候出現了鍵重複,新的值會把對應的之前的值覆蓋
 7  *   
 8  * @author 羅摩銜那
 9  *
10  */
11 public class Demo_Maps
12 {
13   public static void main(String[] args) 
14   {
15      Map<String,String>map=new HashMap<>();
16      map.put("001", "劉亦菲");
17      map.put("002", "迪麗熱巴");
18      System.out.println(map);
19      map.put("001", "趙靈兒");
20      System.out.println(map);
21   }
22 }