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:
Setting the Java Version in Maven
Zipping Collections in Java
Java Program to Implement Adjacency Matrix
Java Program to Implement Max-Flow Min-Cut Theorem
Spring Security Remember Me
Một số nguyên tắc, định luật trong lập trình
Java Program to Compare Binary and Sequential Search
Java Program to Implement Shell Sort
Reactive WebSockets with Spring 5
Guide to the Synchronized Keyword in Java
Java Program to Implement ScapeGoat Tree
Copy a List to Another List in Java
Java Program to Implement Quick Hull Algorithm to Find Convex Hull
How to Convert List to Map in Java
Biến trong java
Documenting a Spring REST API Using OpenAPI 3.0
A Guide to System.exit()
Spring Boot - Quick Start
Java Program to Print the Kind of Rotation the AVL Tree is Undergoing
Rate Limiting in Spring Cloud Netflix Zuul
How to Replace Many if Statements in Java
Spring Security Logout
Java 8 StringJoiner
Servlet 3 Async Support with Spring MVC and Spring Security
Giới thiệu SOAP UI và thực hiện test Web Service
Spring Cloud Connectors and Heroku
Java Program to Implement Sparse Array
Java Program to Implement RoleList API
Generating Random Dates in Java
Phương thức forEach() trong java 8
Removing all Nulls from a List in Java
Serialization và Deserialization trong java