HashMap中的搜索键

时间:2018-06-29 10:53:57

标签: java hashmap

我正在尝试找到在HashMap找到密钥并返回它的最快方法。

我尝试使用containsKey,但是在此之前我正在初始化对象,因此哈希码有所不同,并且找不到它。

我像这样使用线性搜索:

Box b = null;
Box box = new Box(10, 5);
for (Box e : cells.keySet()) {
    if (box.equals(e)) {
        contains = true;
        b = e;
    }
}

Box是一个包含xy字段的类。效果很好,但我想知道是否有更快的方法。

1 个答案:

答案 0 :(得分:1)

如果您先hashcode()上课,则需要覆盖equals()Box,以便能够对付HashMap


然后您可以简单地进行:

Box box = new Box(10, 5);
Box b = cells.containsKey(box) ? box : null;