// ********** CacheDemo.java ********** class Node { private int key; private Object obj; private Node next; public Node(int key, Object obj, Node next) { this.key = key; this.obj = obj; this.next = next; } public int getKey() { return key; } public Object getObject() { return obj; } public Node getNext() { return next; } } class List { private Node head = null; public void enqueue(int key, Object obj) { head = new Node(key, obj, head); } public Object find(int key) { Node current = head; while (current != null) { if (current.getKey() == key) return current.getObject(); else current = current.getNext(); } return null; } } class HashTable { public static final int HASH_SIZE = 100; private List array[] = new List[HASH_SIZE]; public HashTable() { for (int i=0; i