elk-util-parent/elk-util-collections/src/main/java/org/semanticweb/elk/util/collections/ArrayHashMap.java
private static <K, V> V putKeyValue(K[] keys, V[] values, K key, V value) {
		int pos = LinearProbing.getPosition(keys, key);
		if (keys[pos] == null) {
			keys[pos] = key;
			values[pos] = value;
			return null;
		}
		// else
		V oldValue = values[pos];
		values[pos] = value;
		return oldValue;
	}
private static <K, V> V putKeyValue(K[] keys, V[] values, K key, V value) {
		int pos = LinearProbing.getPosition(keys, key);
		if (keys[pos] == null) {
			keys[pos] = key;
			values[pos] = value;
			return null;
		}
		// else
		V oldValue = values[pos];
		values[pos] = value;
		return oldValue;
	}
Associates the given key with the given value in the map defined by the
keys and value arrays. If an entry with the key equal to the given one
already exists in the map, the value for this key will be overwritten
with the given value.

@param keys
the keys of the map
@param values
the values of the map
@param key
the key of the entry
@param value
the value of the entry
@return the previous value associated with the key or <tt>null</tt> if
there was no such a previous value.