How does this work?

Am I doing something wrong? I wouldn’t expect the second one to have a faster result…

Output:

Average 1: 7.33694838
Average 2: 4.06036178

package dane.game.model;

import java.util.HashMap;
import java.util.Map;

public class KeyValue {

	private Map<Object, Object> keyvalues = new HashMap<>();

	public <T> T set(Object key, T value) {
		keyvalues.put(key, value);
		return value;
	}

	public <T> T get(Object key) {
		return get(key, null);
	}

	@SuppressWarnings("unchecked")
	public <T> T get(Object key, T defaultValue) {
		if (!keyvalues.containsKey(key)) {
			keyvalues.put(key, defaultValue);
		}
		return (T) keyvalues.get(key);
	}

}

package dane.game.world;

import dane.game.model.KeyValue;

public class Entity extends KeyValue {

	static final int ITERATIONS = 1_000_000;
	static final double NS_TO_MS = 1_000_000.0;

	public static void main(String[] args) {
		Entity e = new Entity();

		// set values
		e.set("x", 0);
		e.set("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", 0);

		double total1 = 0, total2 = 0;

		for (int n = 0; n < 100; n++) {
			long time = System.nanoTime();

			for (int i = 0; i < ITERATIONS; i++) {
				e.get("x");
			}

			total1 += (System.nanoTime() - time) / NS_TO_MS;

			time = System.nanoTime();

			for (int i = 0; i < ITERATIONS; i++) {
				e.get("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy");
			}

			total2 += (System.nanoTime() - time) / NS_TO_MS;
		}

		System.out.println("Average 1: " + (total1 / 100));
		System.out.println("Average 2: " + (total2 / 100));
	}

}