Hashtable

Run Settings
LanguageJava
Language Version
Run Command
import java.util.ArrayList; class HashTable { int size = 7; Node[] dataMap; class Node { String key; int value; Node next; Node(String key,int value) { this.key = key; this.value = value; } } HashTable() { dataMap = new Node[size]; } public void printTable() { for(int i=0;i<dataMap.length;i++) { System.out.println(i+":"); Node temp = dataMap[i]; while(temp!=null) { System.out.println("{"+temp.key+"="+temp.value+"}"); temp=temp.next; } } } public int Hash(String key) { int hash=0; char[] keyChars = key.toCharArray(); for(int i=0;i<keyChars.length;i++) { int ascii = keyChars[i]; hash = (hash+ascii*23)%dataMap.length; } return hash; } public void set(String key,int value) { int index = Hash(key); Node newNode = new Node(key,value); if(dataMap[index]==null) { dataMap[index]=newNode; } else { Node temp = dataMap[index]; while(temp.next!=null) { temp=temp.next; } temp.next = newNode; } } public int get(String key) { int index = Hash(key); Node temp = dataMap[index]; while(temp!=null) { if(key==temp.key) { return temp.value; } temp=temp.next; } return 0; } public ArrayList keys() { ArrayList<String> allKeys = new ArrayList<>(); for(int i=0;i<dataMap.length;i++) { Node temp = dataMap[i]; while(temp!=null) { allKeys.add(temp.key); temp=temp.next; } } return allKeys; } } class Main { public static void main(String[] args) { HashTable myHashTable = new HashTable(); myHashTable.set("nails",100); myHashTable.set("tile",50); myHashTable.set("lumber",80); myHashTable.set("bolts",200); myHashTable.set("screws",140); System.out.println(myHashTable.keys()); // System.out.println(myHashTable.get("screws")); myHashTable.printTable(); } }
Editor Settings
Theme
Key bindings
Full width
Lines