背景
我做了一个线性链接哈希表作为课程项目。它存储了一个链表数组,每当调用get
或put
方法时,键被散列并取模于数组大小。然后在结果链表上调用get
或put
方法(我也实现了该方法)。
我有一个ST
(符号表)接口。它与Map
类似,但是我无法实现Map
所需的一些操作。通过实现这个接口,我实现了一个链表、红黑树、线性探测哈希表和线性链接哈希表。
我想制作一个类似于线性链接哈希表的东西,它可以接受任意委托符号表类型。例如,用红黑树类型初始化它将创建一个红黑树表,并且get
和put
函数将委托给这些红黑树。
我知道我的实现几乎肯定比库提供的慢,而且在真正的代码中最好使用那些实现。我只是在尝试实验和学习。
问题
最佳方式是什么,以便向我的哈希表提供一个类型,使得哈希表由该类型的表组成,并且调用将委托给这些符号表?
我不能使用泛型,因为我无法对其进行初始化,并且我需要在构建和调整大小时初始化。
我考虑过提供所需类型的空白符号表,然后在它上面使用copy
方法,但似乎应该有更好的方法。是否存在这样的方式?