HashMap复制存储桶条目

HashMap复制存储桶条目

我对HashMaps有疑问。我们正在编写一个小型c(-ish)编译器,为此我们使用了符号表。我们正在使用哈希图来实现。

现在考虑范围,我们使用堆栈。因此,每当我们进入一个新的作用域时,我们都会在堆栈中推送一个表示该令牌的令牌。然后,我们将哈希图中的所有键都放到堆栈中,以解决遇到的所有符号。到目前为止,一切都很好。

退出范围时,我们弹出堆栈,直到到达令牌。在此之前传递的每个符号都必须从哈希图中删除。

给出以下代码:

{
    a = 5;
    {
        a = 5;
    }
}


哈希图会接受吗?与之类似,我将使用a作为键输入它们。那不会有问题,但是当弹出并必须删除它们时,Java能够在两个对象之间产生区别吗?还是第二个会覆盖第一个?

最佳答案

映射javadoc


  将键映射到值的对象。地图不能包含重复项
  钥匙;每个键最多可以映射到一个值。

关于java - Java HashMap复制存储桶条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7953788/

10-09 03:11