从hashmap的关键Object获取Integer值

时间:2016-03-21 12:28:28

标签: java hashmap

在我的一个课程中说测试,在静态块中;我正在使用BakidRangeid类型的对象作为键并使用Integer作为值来构造映射。我的hashmap声明如下所示。

public static HashMap<BakidRangeid, Integer> mapBankIdRangeIdToConfId = new HashMap<BakidRangeid, Integer> ();

BakidRangeid课程看起来像

public class BakidRangeid {

private int bankId;
private int rangeId;

public int getBankId() {
    return bankId;
}
public void setBankId(int bankId) {
    this.bankId = bankId;
}
public int getRangeId() {
    return rangeId;
}
public void setRangeId(int rangeId) {
    this.rangeId = rangeId;
}

}

当我试图通过设置BakidRangeid的实例从hashmap mapBankIdRangeIdToConfId获取值时,我得到NullpointerException,尽管具有bankid和rangeid值的对象,我传递的对象存在于hashmap中。我想我将不得不重写我的BakidRangeid类的equals和hashcode方法。任何人都确认。提前谢谢!

2 个答案:

答案 0 :(得分:1)

请在BakidRangeid类中使用hashCode()equals()方法。

请参阅此link

答案 1 :(得分:1)

在用作hashmap中的键之前覆盖等于BakidRangeid类的方法。