public class Entry<k, v> {
int capacity;
Node[] no;
public Entry(int n) {
capacity = n;
no = new Node[n];
}
//連結清單類
class Node<k, v> {
k key;
v value;
Node<k, v> next;
public Node() {
}
Node(k key, v value, Node<k, v> next) {
this.key = key;
this.value = value;
this.next = next;
}
}
//計算hash值
int hashcode(k key) {
return (key.hashCode() & ) % capacity;
}
public void put(k key, v value) {
int h = hashcode(key);
for (Node<k, v> n = no[h]; n != null; n = n.next) {
if (key.equals(n.key)) {
n.value = value;
return;
}
}
Node<k, v> old = no[h];
no[h] = new Node(key, value, old);
}
public v get(k key) {
int h = hashcode(key);
if (no[h] == null) {
return null;
}
for (Node<k, v> n = no[h]; n != null; n = n.next) {
if (key.equals(n.key)) {
return n.value;
}
}
return null;
}
}