This is a Java Program to implement hash tables. A hash table (also hash map) is a data structure used to implement an associative array, a structure that can map keys to values. A hash table uses a hash function to compute an index into an array of buckets or slots, from which the correct value can be found.
Here is the source code of the Java program to implement separate chaining hash tables. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/**
* Java program to implement Hash Table
**/
import java.util.Scanner;
class HashTable
{
int[] arr;
int capacity;
/** constructor **/
public HashTable(int capacity)
{
this.capacity = nextPrime(capacity);
arr = new int[this.capacity];
}
/** function to insert **/
public void insert(int ele)
{
arr[ele % capacity] = ele;
}
/** function to clear **/
public void clear()
{
arr = new int[capacity];
}
/** function contains **/
public boolean contains(int ele)
{
return arr[ele % capacity] == ele;
}
/** function to delete **/
public void delete(int ele)
{
if (arr[ele % capacity] == ele)
arr[ele % capacity] = 0;
else
System.out.println("\nError : Element not found\n");
}
/** Function to generate next prime number >= n **/
private static int nextPrime( int n )
{
if (n % 2 == 0)
n++;
for (; !isPrime(n); n += 2);
return n;
}
/** Function to check if given number is prime **/
private static boolean isPrime(int n)
{
if (n == 2 || n == 3)
return true;
if (n == 1 || n % 2 == 0)
return false;
for (int i = 3; i * i <= n; i += 2)
if (n % i == 0)
return false;
return true;
}
/** function to print hash table **/
public void printTable()
{
System.out.print("\nHash Table = ");
for (int i = 0; i < capacity; i++)
System.out.print(arr[i] +" ");
System.out.println();
}
}
/** Class HashTableTest **/
public class HashTableTest
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Hash Table Test\n\n");
System.out.println("Enter size");
/** Make object of HashTable **/
HashTable ht = new HashTable(scan.nextInt() );
char ch;
/** Perform HashTable operations **/
do
{
System.out.println("\nHash Table Operations\n");
System.out.println("1. insert ");
System.out.println("2. remove");
System.out.println("3. contains");
System.out.println("4. clear");
int choice = scan.nextInt();
switch (choice)
{
case 1 :
System.out.println("Enter integer element to insert");
ht.insert( scan.nextInt() );
break;
case 2 :
System.out.println("Enter integer element to delete");
ht.delete( scan.nextInt() );
break;
case 3 :
System.out.println("Enter integer element to check if present");
System.out.println("Contains : "+ ht.contains(scan.nextInt() ));
break;
case 4 :
ht.clear();
System.out.println("Hash Table Cleared\n");
break;
default :
System.out.println("Wrong Entry \n ");
break;
}
/** Display hash table **/
ht.printTable();
System.out.println("\nDo you want to continue (Type y or n) \n");
ch = scan.next().charAt(0);
} while (ch == 'Y'|| ch == 'y');
}
}
Hash Table Test Enter size 10 Hash Table Operations 1. insert 2. remove 3. contains 4. clear 1 Enter integer element to insert 28 Hash Table = 0 0 0 0 0 0 28 0 0 0 0 Do you want to continue (Type y or n) y Hash Table Operations 1. insert 2. remove 3. contains 4. clear 1 Enter integer element to insert 24 Hash Table = 0 0 24 0 0 0 28 0 0 0 0 Do you want to continue (Type y or n) y Hash Table Operations 1. insert 2. remove 3. contains 4. clear 1 Enter integer element to insert 14 Hash Table = 0 0 24 14 0 0 28 0 0 0 0 Do you want to continue (Type y or n) y Hash Table Operations 1. insert 2. remove 3. contains 4. clear 1 Enter integer element to insert 19 Hash Table = 0 0 24 14 0 0 28 0 19 0 0 Do you want to continue (Type y or n) y Hash Table Operations 1. insert 2. remove 3. contains 4. clear 1 Enter integer element to insert 94 Hash Table = 0 0 24 14 0 0 94 0 19 0 0 Do you want to continue (Type y or n) y Hash Table Operations 1. insert 2. remove 3. contains 4. clear 1 Enter integer element to insert 17 Hash Table = 0 0 24 14 0 0 17 0 19 0 0 Do you want to continue (Type y or n) y Hash Table Operations 1. insert 2. remove 3. contains 4. clear 3 Enter integer element to check if present 94 Contains : false Hash Table = 0 0 24 14 0 0 17 0 19 0 0 Do you want to continue (Type y or n) y Hash Table Operations 1. insert 2. remove 3. contains 4. clear 3 Enter integer element to check if present 17 Contains : true Hash Table = 0 0 24 14 0 0 17 0 19 0 0 Do you want to continue (Type y or n) y Hash Table Operations 1. insert 2. remove 3. contains 4. clear 2 Enter integer element to delete 17 Hash Table = 0 0 24 14 0 0 0 0 19 0 0 Do you want to continue (Type y or n) y Hash Table Operations 1. insert 2. remove 3. contains 4. clear 1 Enter integer element to insert 94 Hash Table = 0 0 24 14 0 0 94 0 19 0 0 Do you want to continue (Type y or n) y Hash Table Operations 1. insert 2. remove 3. contains 4. clear 4 Hash Table Cleared Hash Table = 0 0 0 0 0 0 0 0 0 0 0 Do you want to continue (Type y or n) n
Related posts:
Java Program to Implement Karatsuba Multiplication Algorithm
Java Program to Implement Affine Cipher
Java Program to Implement Circular Singly Linked List
An Intro to Spring Cloud Contract
Java Program to Implement DelayQueue API
Quick Guide to Spring Bean Scopes
Tổng quan về ngôn ngữ lập trình java
Guide to the Java Queue Interface
Java Program to implement Bit Set
CyclicBarrier in Java
Guide to Guava Multimap
Iterable to Stream in Java
Hướng dẫn Java Design Pattern – DAO
Apache Commons Collections SetUtils
Một số tính năng mới về xử lý ngoại lệ trong Java 7
Java Program to Implement Bubble Sort
Java Program to Implement Horner Algorithm
Java Program to Generate Random Numbers Using Multiply with Carry Method
Getting Started with Custom Deserialization in Jackson
RegEx for matching Date Pattern in Java
Guide to CountDownLatch in Java
Registration – Password Strength and Rules
Sort a HashMap in Java
Spring MVC Content Negotiation
Custom Cascading in Spring Data MongoDB
Different Ways to Capture Java Heap Dumps
Java Program to Implement Quick Hull Algorithm to Find Convex Hull
Intro to Inversion of Control and Dependency Injection with Spring
Tạo ứng dụng Java RESTful Client với thư viện Retrofit
Java Program to Represent Graph Using Adjacency Matrix
A Guide to Queries in Spring Data MongoDB
A Guide to the ResourceBundle