public <T> Object put(String key, T value) {
		Object last = null;
		int index = keys.indexOf(key);
		if (index >= 0) {
			last = grab(key);
			values.remove(index);
			values.add(index, new GenericEntry<T>(value));
		} else {
			keys.addSorted(key);
			index = keys.indexOf(key);
			values.add(index, new GenericEntry<T>(value));
		}
		isEmpty = false;
		size++;
		return last;
	}
public < T > Object put ( String key , T value ) { Object last = null ; int index = keys . indexOf ( key ) ; if ( index >= 0 ) { last = grab ( key ) ; values . remove ( index ) ; values . add ( index , new GenericEntry < T > ( value ) ) ; } else { keys . addSorted ( key ) ; index = keys . indexOf ( key ) ; values . add ( index , new GenericEntry < T > ( value ) ) ; } isEmpty = false ; size ++ ; return last ; }
Associates the specified value with the specified key in this map. If the
map previously contained a mapping for the key, the old value is replaced
by the specified value. (A map m is said to contain a mapping for a key k
if and only if m.containsKey(k) would return true.)

@param key
@param value
@return the value previously associated with this key, null if key did not exist before