47 lines
1.5 KiB
Java
47 lines
1.5 KiB
Java
package net.datastructures;
|
|
import java.util.Iterator;
|
|
|
|
/**
|
|
* An interface for a dictionary storing (key-value) pairs.
|
|
* @author Michael Goodrich
|
|
*/
|
|
//begin#fragment Dictionary
|
|
public interface Dictionary<K,V> {
|
|
//end#fragment Dictionary
|
|
/** Returns the number of entries in the dictionary. */
|
|
//begin#fragment Dictionary
|
|
public int size();
|
|
//end#fragment Dictionary
|
|
/** Returns whether the dictionary is empty. */
|
|
//begin#fragment Dictionary
|
|
public boolean isEmpty();
|
|
//end#fragment Dictionary
|
|
/** Returns an entry containing the given key, or <tt>null</tt> if
|
|
* no such entry exists. */
|
|
//begin#fragment Dictionary
|
|
public Entry<K,V> find(K key)
|
|
throws InvalidKeyException;
|
|
//end#fragment Dictionary
|
|
/** Returns an iterator containing all the entries containing the
|
|
* given key, or an empty iterator if no such entries exist. */
|
|
//begin#fragment Dictionary
|
|
public Iterable<Entry<K,V>> findAll(K key)
|
|
throws InvalidKeyException;
|
|
//end#fragment Dictionary
|
|
/** Inserts an item into the dictionary. Returns the newly created
|
|
* entry. */
|
|
//begin#fragment Dictionary
|
|
public Entry<K,V> insert(K key, V value)
|
|
throws InvalidKeyException;
|
|
//end#fragment Dictionary
|
|
/** Removes and returns the given entry from the dictionary. */
|
|
//begin#fragment Dictionary
|
|
public Entry<K,V> remove(Entry<K,V> e)
|
|
throws InvalidEntryException;
|
|
//end#fragment Dictionary
|
|
/** Returns an iterator containing all the entries in the dictionary. */
|
|
//begin#fragment Dictionary
|
|
public Iterable<Entry<K,V>> entries();
|
|
}
|
|
//end#fragment Dictionary
|