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 }
