【问题标题】:Get Integer value from key Object of hashmap从 hashmap 的 key Object 中获取 Integer 值
【发布时间】:2016-07-07 23:06:44
【问题描述】:

在我的一堂课中说测试,在它的静态块中;我正在使用 BakidRangeid 类型的对象作为键和整数作为值来构造地图。我的 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 方法。任何人都请确认。提前致谢!

【问题讨论】:

  • 是的,我可以确认你需要实现equalshashCode
  • 如您所说,您是否尝试过覆盖哈希码方法?

标签: java hashmap


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    参考这个link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-08
      • 1970-01-01
      • 2016-03-16
      • 2021-06-05
      • 1970-01-01
      相关资源
      最近更新 更多