使用java在开放散列中实现延迟删除的有效方法



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

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

我的想法有什么问题吗?

使用单个Object s数组,元素可以是null(空闲槽位),String(满槽位)和特殊

private static final Object TOMBSTONE = new Object();

相关内容

  • 没有找到相关文章

最新更新