【发布时间】:2021-07-24 02:25:17
【问题描述】:
我正在尝试使用 UserDefined 类作为键来实现 HashMap,即使我同时实现了 hashCode()(每个对象返回 0)和 equals()(每个对象返回 false),我也成功了。我的代码
public class UserDefinedMapKey {
public static void main(String[] args) {
HashMap<Beck, Integer> hm = new HashMap<Beck, Integer>();
hm.put(new Beck(10,"archit"), 20);
hm.put(new Beck(10,"archit"), 30);
hm.put(new Beck(30,"goel"), 50);
for(Map.Entry<Beck, Integer> m : hm.entrySet()) {
System.out.println(m.getKey() + "===" + m.getValue());
}
}
}`
`
class Beck {
int arc;
String grc;
public Beck(int i, String string) {
// TODO Auto-generated constructor stub
}
public int getArc() {
return arc;
}
public void setArc(int arc) {
this.arc = arc;
}
public String getGrc() {
return grc;
}
public void setGrc(String grc) {
this.grc = grc;
}
@Override
public int hashCode() {
return 0;
}
@Override
public boolean equals(Object b) {
return false;
}
}
输出:-
main.java.Interview.Beck@0===20
main.java.Interview.Beck@0===30
main.java.Interview.Beck@0===50
谁能告诉我它是如何工作的原因
【问题讨论】:
标签: java hashmap equals hashcode user-defined-types