001package components.map;
002
003import java.util.Iterator;
004import java.util.NoSuchElementException;
005
006/**
007 * {@code Map} represented as a hash table using {@link Map}s for the buckets,
008 * with implementations of primary methods.
009 *
010 * @param <K>
011 *            type of {@code Map} domain (key) entries
012 * @param <V>
013 *            type of {@code Map} range (associated value) entries
014 * @convention {@code
015 * |$this.hashTable| > 0  and
016 * for all i: integer, pf: PARTIAL_FUNCTION, x: K
017 *     where (0 <= i  and  i < |$this.hashTable|  and
018 *            <pf> = $this.hashTable[i, i+1)  and
019 *            x is in DOMAIN(pf))
020 *   ([computed result of x.hashCode()] mod |$this.hashTable| = i)  and
021 * for all i: integer
022 *     where (0 <= i  and  i < |$this.hashTable|)
023 *   ([entry at position i in $this.hashTable is not null])  and
024 * $this.size = sum i: integer, pf: PARTIAL_FUNCTION
025 *     where (0 <= i  and  i < |$this.hashTable|  and
026 *            <pf> = $this.hashTable[i, i+1))
027 *   (|pf|)
028 * }
029 * @correspondence {@code
030 * this = union i: integer, pf: PARTIAL_FUNCTION
031 *            where (0 <= i  and  i < |$this.hashTable|  and
032 *                   <pf> = $this.hashTable[i, i+1))
033 *          (pf)
034 * }
035 */
036public class Map4<K, V> extends MapSecondary<K, V> {
037
038    /*
039     * 2221/2231 assignment code deleted.
040     */
041
042}