HashEntry.java /* * To change this template, choose Tools | Templates * and open
ID: 3732139 • Letter: H
Question
HashEntry.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
public class HashEntry {
private int key;
private String value;
HashEntry(int key, String value) {
this.key = key;
this.value = value;
}
public int getKey() {
return key;
}
public String getValue() {
return value;
}
public void setValue(String val) {
this.value = val;
}
}
HashMap.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
public class HashMap {
private final static int TABLE_SIZE = 137;
HashEntry[] table;
HashMap() {
//Implement
}
public String get(int key) {
// Implement
}
public void put(int key, String value) {
// Implement
}
public void linearProbe(int key, String value){
// Implement
}
public void quadraticProbe(int key, String value){
// Implement
}
}
Use the Java source files HashEntry.java and HashMap.java provided in canvas. Create a hash table that is made of elements HashElement(int Key, String Value) The size of hash table will be 137. Implement the following methods for the hash table: a. put(int Key, String Value): i. Puts the key value pair in the hash table at a certain index. You need to implement a simple hash function H(key) = key mod mapsize to find the index where you will put the pair. 11. iii. If collision occurs, i.e., a pair already exists in that index and the key is not the same as the current key, then you will use this function to resolve the collision, H(key)-(7*H(key)+1) mod mapsize, until you get an empty slot If the index is already full and the keys are the same, just replace the old value with the new one. iv.Explanation / Answer
ANS:-
Given that,
we should use the Java source files HashEntry.java and HashMap.java provided in canvas. Create a hash table that is made of elements HashElement(int Key, String Value) The size of hash table will be 137. Implement the following methods for the hash table: a. put(int Key, String Value): i. Puts the key value pair in the hash table at a certain index. You need to implement a simple hash function H(key) = key mod mapsize to find the index where you will put the pair. 11. iii. If collision occurs, i.e., a pair already exists in that index and the key is not the same as the current key, then you will use this function to resolve the collision, H(key)-(7*H(key)+1) mod mapsize, until you get an empty slot If the index is already full and the keys are the same, just replace the old value with the new one.
PROGRAM:-
=-=====HashMap========
import java.math.BigInteger;
public class HashMap {
private final static int TABLE_SIZE = 100;
HashEntry[] table;
HashMap() {
table = new HashEntry[TABLE_SIZE];
for (int i = 0; i < TABLE_SIZE; i++)
table[i] = null;
}
public String get(int key) {
int hash = new BigInteger(toAscii(key)).mod(new BigInteger(((Integer) TABLE_SIZE).toString())).intValue();
while (table[hash] != null && table[hash].getKey() != key)
hash = ((7 * hash) + 1) % TABLE_SIZE;
if (table[hash] == null)
return null;
else
return table[hash].getValue();
}
public void put(int key, String value) {
// creating hash code using key value given as a string
int hash = new BigInteger(toAscii(key)).mod(new BigInteger(((Integer) TABLE_SIZE).toString())).intValue();
while (table[hash] != null && table[hash].getKey() != key)
hash = ((7 * hash) + 1) % TABLE_SIZE;
table[hash] = new HashEntry(key, value);
}
public void linearProbe(int key, String value) {
// Implement
}
public void quadraticProbe(int key, String value) {
// Implement
}
public static String toAscii(int value) {
String s = String.valueOf(value);
StringBuilder sb = new StringBuilder();
long asciiInt;
// loop through all values in the string, including blanks
for (int i = 0; i < s.length(); i++) {
// getting Ascii value of character and adding it to the string.
char c = s.charAt(i);
asciiInt = (int) c;
sb.append(asciiInt);
}
return String.valueOf(sb);
}
}
====Main=====
import java.io.IOException;
public class HashTable {
public static void main(String[] args) throws IOException {
HashMap entry = new HashMap();
entry.put(36100, "Dipal");
entry.put(52120, "Hemant");
entry.put(22100, "Harleen");
System.out.println(entry.get(52120));
entry.put(12345, "John");
System.out.println(entry.get(12345));
}
}
=====O/P===
Hemant
John
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.