BackgroundFor class, I made a linear-chaining hash table. It stores an array of linked lists, and whenever get or put is called, the key is hashed and modulo'd by the array size. The get or put is then called on the resulting linked list (which I also implemented).I have an \[code\]ST\[/code\] (symbol table) interface. It is much like \[code\]Map\[/code\], but some of \[code\]Map\[/code\]'s required operations were too confusing for me to implement. Implementing this interface I have implementations of a linked list, red-black tree, linear-probing hash table, and the linear-chaining hash table.I would like to make a something similar to a linear-chaining hash table that accepts an arbitrary delegate symbol table type. For example, initializing it with the red-black tree type would make a table of red-black trees, and the get and put functions would delegate to those red-black trees.I recognize that my implementations are almost certainly slower than the library-provided ones, and that I would be better off to use those in real code. I am just trying to experiment and learn.QuestionWhat is the best way to supply a type to my hash table so that the hash table will consist of a table of that type, and calls will delegate to those symbol tables?I can't use generics because I can't initialize those, and I need to initialize on construction and on re-sizing.I thought about providing a blank symbol table of the desired type to start, and then using the \[code\]copy\[/code\] method on that, but it seems like there should be a better way. Is there?