public interface SymbolTable { void put(Key key, Value value); // inserts a key-value pair into the table boolean contains(Key key); // returns true if the table contains the specified key Value get(Key key); // returns the value paired with given key void delete(Key key); // removes the given key (and its associated value) // from the table boolean isEmpty(); // returns true if the table is empty int size(); // returns the number of key-value pairs in the table Iterable keys(); // returns an Iterable collection of all keys in the table }