title: Populate Map<String, Map<String, Integer>> with values
body: <p>I need to fill <code>Map&lt;String, Map&lt;String, Integer&gt;&gt;</code> with values. My code is as follows:</p>
  <pre><code>// tags, &lt;types, prices&gt;
  Map&lt;String, Map&lt;String, String&gt;&gt; outter = new HashMap&lt;&gt;();
  
  List&lt;String&gt; tags = new ArrayList&lt;String&gt;();
  tags.add(&quot;1tag&quot;);
  tags.add(&quot;2tag&quot;);
  
  List&lt;String&gt; types = new ArrayList&lt;String&gt;();
  types.add(&quot;paper&quot;);
  types.add(&quot;metal&quot;);
  
  List&lt;String&gt; prices = new ArrayList&lt;String&gt;();
  prices.add(&quot;1.20&quot;);
  prices.add(&quot;2.20&quot;);
  
  for (int t = 0; t &lt; tags.size(); t++) {
      Map&lt;String, String&gt; inner = new HashMap&lt;&gt;();
      for (int tp = 0; tp &lt; types.size(); tp++) {
          for (int p = 0; p &lt; prices.size(); p++) {
              inner.put(types.get(tp), prices.get(p));
          }
      }
      outter.put(tags.get(t), inner);
  }
  System.out.println(&quot;filled outter:&quot; + outter);
  </code></pre>
  <p>The result is:</p>
  <pre><code>filled outter:{2tag={paper=2.20, metal=2.20}, 1tag={paper=2.20, metal=2.20}}
  </code></pre>
  <p>The correct result I want is:</p>
  <pre><code>filled outter:{2tag={paper=1.20, paper=2.20, metal=1.20, metal=2.20}, 1tag={paper=1.20, paper=2.20, metal=1.20, metal=2.20}}
  </code></pre>
  <p>How to prevent overriding values and get correct result?
  Help..</p>