************ Hashing - II ************ * In this lab we continue implementing our own data structure library. * You will implement the following UML in Java: .. figure:: ./uml_hashing.drawio.png :align: center | Hashing - HashTableOpen ======================= 1. Create the structure of the **generic** class :code:`HashTableOpen`. * It contains five data fields. * Implement the constructor :code:`HashTableOpen()`. * Implement the methods :code:`int find(K key)` and :code:`void rehash()` * Implement all the function from the interface. 2. Create the structure of the **generic** class :code:`HashTableOpenQuad` inheriting from :code:`HashTableOpen`. * Override the method :code:`int find(K key)` 3. Make sure that your code works. Hahsing - HashTableOpenDouble ============================= 1. Create the generic class :code:`HashTableOpenDouble`. 2. Implement the methods :code:`int hash2(K key)`, :code:`int nextPrime(int n)` and :code:`boolean isPrime(int n)`. 3. Override the method :code:`int find(K key)`. 4. Make sure that your code works. **ENSURE WE HAVE RECORDED YOUR COMPLETION. FAILURE TO DO SO WILL RESULT IN A GRADE OF 0!**