1

我正在使用二次探针实现一个开放哈希表。我的数据库是 java String[] (我的对象仅限于 strings)。对于删除,我使用延迟删除,但我想真正有效地实现它。我确信有比持有一组全新的标志(活动/空/已删除)更优雅的解决方案。

我想在删除时分配一些已知的常量字符串(例如“”,空字符串),并在需要时将单元格内容与该字符串本身的指针进行比较(使用 == 而不是 String.equals)。这样我就知道单元格已被删除,但活动单元格可以保存任何类型的字符串(包括空字符串),因为它永远不会指向我们的常量字符串。

我的想法有问题吗?

4

1 回答 1

0

使用单个Objects 数组,元素可以是null(free slot)、String(full slot) 和 special

private static final Object TOMBSTONE = new Object();

用于延迟删除的插槽。

于 2014-05-20T02:43:09.180 回答