Is it possible to create a Map where every Key points to the same Value?
hashtable, java
Solution
I suppose the most reasonable way to do this with existing API is like the following:
// Java 6/7
new TreeMap<K, V>(new Comparator<K>() {
@Override
public int compare(K lhs, K rhs) {
return 0;
}
});
// Java 8+
new TreeMap<K, V>((a, b) -> 0);
This `TreeMap` considers all keys equal but will otherwise maintain pretty good Map semantics.
Note that the first key you put in the Map will stay in it forever unless you `remove` it.
i.e.
m.put("abc", "123");
m.put("def", "456");
// prints something like {abc=456}
System.out.println(m);
So you might keep that in mind for example if you planned on examining the `entrySet`.
Problem
Is it possible (In Java) to create a Map where, no matter what key I was to search for, I would retrieve the same value? We can assume either a finite or infinite amount of keys. I considered a map of size 1 and load factor of 1.0, with that value stored in it, but I'm nearly positive that the hashmap implementation will recognize the collision, and return null anyway. I also entertained the possibility that if I created my own hashfunction for a variable, or even a new datatype that implemented Map, that I should be able to do this, but it may be a little messy. Perhaps not? Of course, simply mapping the value to every single key would be very inefficient (unless there is a built in method for this, that I overlooked), and nowhere near as entertaining as hearing SO's answers.