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:
The Basics of Java Security
Java Program to Implement Threaded Binary Tree
Java Program to Implement JobStateReasons API
Java Program to Implement Park-Miller Random Number Generation Algorithm
Converting Between Byte Arrays and Hexadecimal Strings in Java
Tính kế thừa (Inheritance) trong java
HttpClient 4 – Follow Redirects for POST
Merging Streams in Java
Java – String to Reader
Hướng dẫn Java Design Pattern – Strategy
A Guide to JUnit 5 Extensions
Command-Line Arguments in Java
Java – Reader to String
Build a REST API with Spring and Java Config
Java Program to Find the Longest Subsequence Common to All Sequences in a Set of Sequences
How to Replace Many if Statements in Java
Java Program to Perform Arithmetic Operations on Numbers of Size
Introduction to Using FreeMarker in Spring MVC
Java Program to Test Using DFS Whether a Directed Graph is Strongly Connected or Not
Spring JDBC
Java Program to do a Breadth First Search/Traversal on a graph non-recursively
Spring Boot Tutorial – Bootstrap a Simple Application
How to Change the Default Port in Spring Boot
Registration – Password Strength and Rules
Custom Exception trong Java
Ép kiểu trong Java (Type casting)
Guide to the ConcurrentSkipListMap
Tính đa hình (Polymorphism) trong Java
Validate email address exists or not by Java Code
ArrayList trong java
Guide to the Java Queue Interface
Java Program to Implement Euclid GCD Algorithm