Quick actions

cmd+k|ctrl+k

Navigation

Languages

Hashtable

Snippet info

Language

Java

Visibility

public

Author

mudaganisushanth

Created

2023-03-19T11:32:45.009086Z

Updated

2023-03-28T15:35:05.271246Z

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();
    }
}
INFO