public class ObjTest{
private Integer id;
public boolean equals(Object obj) {
if(obj instanceof ObjTest) {
ObjTest ojb = (ObjTest) obj;
if(this.id.intValue() == ojb.id.intValue()) {
return true;
}
}
return false;
}
public int hashCode() {
return id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
public class HashMapTest {
private static Map<ObjTest, Integer> map = new HashMap<ObjTest, Integer>();
private static void init() {
ObjTest obj1 = new ObjTest();
obj1.setId(3);
ObjTest obj2 = new ObjTest();
obj2.setId(2);
ObjTest obj3 = new ObjTest();
obj3.setId(1);
map.put(obj1, 3);
map.put(obj2, 2);
map.put(obj3, 1);
for(Map.Entry<ObjTest, Integer> e : map.entrySet()) {
ObjTest obj = (ObjTest) e.getKey();
System.out.println("key:" + obj.getId());
}
}
public static void main(String[] args) {
init();
}
}
结果:
key:1
key:2
key:3
求解?