import java.util.LinkedList; class SeparateChainingHashTable { private static final int TABLE_SIZE = 10; LinkedList<String>[] hashTable; public SeparateChainingHashTable() { hashTable = new LinkedList[TABLE_SIZE]; for (int i = 0; i < TABLE_SIZE; i++) { hashTable[i] = new LinkedList<>(); } } public int hash(String key) { return Math.abs(key.hashCode() % TABLE_SIZE); } public void insert(String key, String value) { int index = hash(key); hashTable[index].add(value); } public boolean search(String key, String value) { int index = hash(key); return hashTable[index].contains(value); } public void display() { System.out.println("Hash Table Contents:"); for (int i = 0; i < TABLE_SIZE; i++) { System.out.print("Index " + i + ": "); if (!hashTable[i].isEmpty()) { for (String value : hashTable[i]) { System.out.print(value + " -> "); } } System.out.println(); } } public static void main(String[] args) { SeparateChainingHashTable hashTable = new SeparateChainingHashTable(); // Insert some key-value pairs hashTable.insert("John", "Doe"); hashTable.insert("Jane", "Smith"); hashTable.insert("Alice", "Johnson"); hashTable.insert("Smith", "Williams"); // Display contents hashTable.display(); // Search for values System.out.println("Searching for 'Doe': " + hashTable.search("John", "Doe")); } }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter