@@ -0,0 +1,1267 @@
+public class JMap%3CK, V%3E %7B%0A%0A    private GenericList%3CK%3E keySet;%0A    private GenericList%3CV%3E valueSet;%0A%0A    public JMap() %7B%0A        keySet = new GenericList%3CK%3E();%0A        valueSet = new GenericList%3CV%3E();%0A%0A    %7D%0A%0A    public void put(K key, V value) %7B%0A        if (!keySet.contains(key)) %7B%0A            // if the key is not in the map, create a new entry%0A            keySet.add(key);%0A            valueSet.add(value);%0A        %7D%0A%0A        if (keySet.contains(key)) %7B%0A            // if the key is already in the map, update the current value.%0A            valueSet.updateValueAtIndex(keySet.getIndexOf(key), value);%0A        %7D%0A    %7D%0A%0A    @Override%0A    public String toString() %7B%0A        return keySet.toString() + valueSet.toString();%0A    %7D%0A%0A    public V get(K key) %7B%0A        int index = keySet.getIndexOf(key);%0A        return valueSet.getElementAtIndex(index);%0A    %7D%0A%0A    public boolean containsKey(K key) %7B%0A        return keySet.contains(key);%0A    %7D%0A%0A    public void clear() %7B%0A        keySet.clear();%0A        valueSet.clear();%0A    %7D%0A%0A    public int size() %7B%0A        return keySet.size();%0A    %7D%0A%0A    public void remove(K key) %7B%0A        int indexOfRemoval = keySet.findIndexOf(key);%0A        keySet.removeValue(indexOfRemoval);%0A        valueSet.removeValue(indexOfRemoval);%0A    %7D%0A%7D%0A

Create JMap.java