Here are the requirements for what I need done:

Write a Java program that implements two hashing tables using different hashing functions. Insert the same data items into both, and evaluate your results as follows:

1. Use the Random class to generate a minimum of 40 seven-digit integers. You will need to access the individual digits of these integers…you may leave them as numeric or convert them to strings. (You may find it beneficial to be able to test repeatedly with the same data, so you might want to provide a way of saving the generated data to a file. You might give your user the option of using an existing file or generating a new set of numbers each time you run your program.)

2. Implement your hash tables with arrays. You may use two separate arrays or one multi-column array.

3. Using your generated data, insert each item into the first of your hash tables using an extraction method hashing function, perhaps the last two digits of each seven digit number (or string).

4. Use a division method hashing function for the second. Base your divisor on the number of items you generate.

5. Use linear probing for collisions.

6. When you hash tables are fully populated, find each of your original data items by computing the appropriate hash key and searching each table.

7. Produce a formatted report with the following items:

a. How many comparisons were necessary to find each item in each table?

b. What is the total number of comparisons necessary to find the items in each table?

c. What is the average number of comparisons necessary to find an item in each table?

8. Generate multiple iterations of random numbers. Do you results with multiple sets show a trend indicating that one hash function is better than the other for this type of data?

I will pay $50 for writing the program. Payment will be done with paypal. Thanks for any help