【发布时间】:2013-03-04 10:32:49
【问题描述】:
在 Java 中,如果我有 HashMap<Integer, int[]> map 并想查找给定的 int key,例如 map.get(key),那么算法将计算 key.hashCode(),转到相应的存储桶并线性搜索 int[] 类型的对象并使用 equals() 比较它们?因此,桶中的那些int[] 对象将具有相同的键(由hashCode 计算),它们将由equals() 进行比较。对吗?
我在网上找不到一个例子,它显示得很清楚。只有文字。
您要重定向我的内容不包含正常可理解的示例,我不需要理论。
【问题讨论】:
-
如果您有
HashMap<Integer, int[]>,那么get将返回int[]。如果您确实想要该数组中的某些元素,则必须自己搜索。 -
@SophieSperner:在
HashMap中,每个键只能有一个值。对于每个键的更多值,您需要MultiMap。 -
hashCode和equals仅与密钥相关。它不对这个值做任何事情,它只是返回对它的引用。