title: How to add values for java generic map with undetermined "?" value type
body: <p>I've seen this kind of declaration in jdk 8 sample:</p>
  
  <pre><code>    Map&lt;String, ?&gt; map = new HashMap&lt;&gt;(3);//OK
  </code></pre>
  
  <p>But when I tried to add value to "map", I didn't succeed:</p>
  
  <pre><code>    map.put("abc", Optional.of(5));
      map.put("kk", "xyz");
  </code></pre>
  
  <p>Both fail to compile. I wish to know:</p>
  
  <p>(1) What does "?" indicate in Map declaration above?</p>
  
  <p>(2) How to give values to this "map"?</p>