gpt4 book ai didi

java - java中的哈希冲突是什么?如何从中恢复?由于碰撞如何获取第二个桶中的元素?

转载 作者:行者123 更新时间:2023-12-01 18:25:24 25 4
gpt4 key购买 nike

public void hashcollision(){

Map m=new HashMap();

m.put(1,2);

m.put(1,3);


system.out.println(m.get(1));

}

o/p将为3,如何访问2。

最佳答案

您需要首先弄清楚您到底想要实现什么,以及 HashMap 是否是适合该工作的工具。

HashMapMap 的一种类型,Map 的要点是允许您分配。将其视为一排盒子。每个盒子上面都有一个标签(即),里面有一些东西(即)。

当您将某些内容放入Map时,您指定一个键和一个值:

map.put(1,2);

这意味着:找到标有1的盒子,扔掉里面的所有东西,并用2替换它的内容。如果没有标记为 1 的框,则标记一个新框 1,并将 2 放入其中。

重点是,因为这扔掉了该框中已有的内容,因此您的代码会执行以下操作:

map.put(1,2); //first time, so label a new box with 1, and put 2 inside it
map.put(1,3); //already a box labelled 1, so throw its contents away and put 3 inside

2 根本不再存储。无法检索它,因为它不存在。

如果您试图获取已覆盖的值,这对我来说意味着您一开始并不真正想要一个 HashMap ,并且您会拥有最好使用允许您为给定键存储多个值的东西。有些东西可以做到这一点,但它们并不像通用 Map 那样常见。您可能只需要重新考虑您的代码以及您想要做什么。

但是忘记哈希冲突:它们是 HashMap 内部的东西,并且它们会由 HashMap 为您分类,因此您实际上没有担心他们。他们与这里发生的事情无关。

关于java - java中的哈希冲突是什么?如何从中恢复?由于碰撞如何获取第二个桶中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26384718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com