Lab Activity 3.1
HashProvider.java
public interface HashProvider<K> {
int hashKey(K key, int tableSize);
}HashTable.java
import java.util.Optional;
public interface HashTable<K,V> {
void put(K key,V value);
Optional<V> get(K key);
void remove(K key);
}OpenAddrHashTable.java
import java.util.Optional;
public class OpenAddrHashTable<K, V> implements HashTable<K, V> {
private final HashProvider<K> hashProvider;
private Pair<K, V>[] array;
public OpenAddrHashTable(int capacity, HashProvider<K> hashProvider) {
array = new Pair[capacity];
this.hashProvider = hashProvider;
}
public void put(K key, V value) {
// write your code here
}
private int searchPosition(K key) {
// write your code here
}
public void remove(K key) {
// write your code here
}
public Optional<V> get(K key) {
// write your code here
return Optional.empty();
}
}OpenAddrPair.java
public class OpenAddrPair<K, V> {
private final K key;
private final V value;
private boolean deleted;
public OpenAddrPair(K key, V value) {
this.key = key;
this.value = value;
this.deleted = false;
}
public K getKey() {
return key;
}
public V getValue() {
return value;
}
public boolean isDeleted() {
return deleted;
}
public void setDeleted(boolean deleted) {
this.deleted = deleted;
}
}Pair.java
public class Pair<K, V> {
private final K key;
private final V value;
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
public K getKey() {
return key;
}
public V getValue() {
return value;
}
}RemainderHashing.java
public class RemainderHashing implements HashProvider<Integer>{
public int hashKey(Integer key, int tableSize) {
return key % tableSize;
}
public static void main(String[] args) {
RemainderHashing remainderHashing = new RemainderHashing();
System.out.println(remainderHashing.hashKey(337481990, 1000));
System.out.println(remainderHashing.hashKey(116241990, 1000));
System.out.println(remainderHashing.hashKey(983611990, 1000));
System.out.println(remainderHashing.hashKey(201031990, 1000));
System.out.println(remainderHashing.hashKey(337481990, 1447));
System.out.println(remainderHashing.hashKey(116241990, 1447));
System.out.println(remainderHashing.hashKey(983611990, 1447));
System.out.println(remainderHashing.hashKey(201031990, 1447));
}
}Last updated