我正在使用二次探针实现一个开放哈希表。我的数据库是 java String[] (我的对象仅限于 strings)。对于删除,我使用延迟删除,但我想真正有效地实现它。我确信有比持有一组全新的标志(活动/空/已删除)更优雅的解决方案。
我想在删除时分配一些已知的常量字符串(例如“”,空字符串),并在需要时将单元格内容与该字符串本身的指针进行比较(使用 == 而不是 String.equals)。这样我就知道单元格已被删除,但活动单元格可以保存任何类型的字符串(包括空字符串),因为它永远不会指向我们的常量字符串。
我的想法有问题吗?