public Value put(Key1 k1, Key2 k2, Value v) {
		Map<Key2, Value> data2 = data.get(k1);
		Value prev = null;
		if ( data2==null ) {
			data2 = new LinkedHashMap<Key2, Value>();
			data.put(k1, data2);
		}
		else {
			prev = data2.get(k2);
		}
		data2.put(k2, v);
		return prev;
	}
Sometimes we need to map a key to a value but key is two pieces of data.
 This nested hash table saves creating a single key each time we access
 map; avoids mem creation.
runtime/Java/src/org/antlr/v4/runtime/misc/DoubleKeyMap.java