我对HashMaps有疑问。我们正在编写一个small-c(-ish)编译器,为此我们使用了一个符号表。我们正在使用hashmap来实现这一点。Java HashMap重复存储桶条目
现在考虑范围我们使用堆栈。所以每次我们进入一个新的作用域时,我们都会在堆栈上推送一个表示这个标记的标记。然后,我们将hashmap中的所有密钥放在堆栈中,以查找我们遇到的所有符号。到现在为止还挺好。
当我们退出范围时,我们弹出堆栈直到达到令牌。我们之前通过的每个符号都必须从我们的散列图中删除。
考虑下面的代码:
{
a = 5;
{
a = 5;
}
}
将HashMap中能接受吗?如在,我会输入他们作为一个关键。这不会是一个问题,但是当弹出并删除它们时,Java能够在这两个对象之间做出区别吗?或者第二个会覆盖第一个?
我读过它。但的确,这回答了它。 – KWyckmans