public class ListTable extends AbstractTable implements Function { //Data private java.util.LinkedList list; //Constructors public ListTable() { list = new java.util.LinkedList(); } //Access method public java.util.LinkedList getList() { return list; } //Abstract methods implementation public Object get(Object key) { java.util.Iterator it = list.iterator(); while(it.hasNext()) { Entry r = (Entry)(it.next()); if(key.equals(r.getKey())) return r.getValue(); } return null; } public Object put(Object key,Object value) { Object result = null; java.util.Iterator it = list.iterator(); while(it.hasNext()) { Entry r = (Entry)(it.next()); if(key.equals(r.getKey())) { result = r.getValue(); r.setValue(value); } } if(result == null) { Entry m = new Entry(key); m.setValue(value); list.addFirst(m); } return result; } public Object remove(Object key) { Object value = get(key); if(value != null) { Entry m = new Entry(key); m.setValue(value); list.remove(m); } return value; } public java.util.Iterator keys() { return new TableKeysIterator(list.iterator()); } public java.util.Iterator values() { return new TableValuesIterator(list.iterator()); } //Function methods - inherited from class AbstractTable }