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

时间:2014-05-07 18:52:54

标签: java string hashtable implementation quadratic-probing

我正在使用二次探测实现一个开放的哈希表。我的数据库是java String [](我的对象仅限于仅限于字符串)。对于删除我使用延迟删除,但我想实现它非常有效。我确信有一个更好的解决方案,而不是拿着一个全新的标志数组(活动/空/删除)。

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

我的想法有问题吗?

1 个答案:

答案 0 :(得分:0)

使用单个Object个数组,元素可以是null(空闲广告位),String(完整广告位)和特殊

private static final Object TOMBSTONE = new Object();

用于延迟删除的广告位。