Map<String, Map<String, Boolean>> myMap = new HashMap<String,HashMap<String,Boolean>>(); <p>Why doesn't that work in java, but this does</p> <pre><code>Map&lt;String, Map&lt;String, Boolean&gt;&gt; myMap = new HashMap&lt;String,Map&lt;String,Boolean&gt;&gt;(); </code></pre> <p>Just to clarify the below alteration of the nested HashMap shows a compiler error, whereas the above does not not; with a Map (not hashmap)</p> <pre><code>Map&lt;String, Map&lt;String, Boolean&gt;&gt; myMap = new HashMap&lt;String,HashMap&lt;String,Boolean&gt;&gt;(); </code></pre>