Ryan Avery

Hash Tables


This project was created for my CS-321, Data Structures class that I took in Spring of 2016. The project was assigned during our lectures on hash tables when we were learning about the different hash functions and when/why to use them.

The hash table (also known as a hash map) is a type of data structure that uses an associative array which maps keyslarge project picture to values. The way in which these maps are created is by the use of a hash function. There are many well-documented hash functions, and the best hash function will provide an even distribution which minimizes the chances that a value gets mapped to a location that is already in use (a collision).

This program tests different types of hash functions using different types of load factors. The goal of the program is to be able to see first-hand how the average number of probes for a hash table varies based on the input into the table, how full the table is, and the hash function being used.

To run the program, use “javac HashTest <1, 2, or 3> <0, 1, or 2 (optional)>” The first argument is the input type (Random number, current time, and strings from a file), the second is the load factor you want the hash table to stop filling at, and the third argument is an optional argument which shows differing debug settings.