title: Extending an ImmutableMap with additional or new values
body: <p>Much like how an <code>ImmutableList</code> could be extended as such:</p>
  
  <pre><code>ImmutableList&lt;Long&gt; originalList = ImmutableList.of(1, 2, 3);
  ImmutableList&lt;Long&gt; extendedList = Iterables.concat(originalList, ImmutableList.of(4, 5));
  </code></pre>
  
  <p>If I have an existing map, how could I extend it (or create a new copy with replaced values)?</p>
  
  <pre><code>ImmutableMap&lt;String, Long&gt; oldPrices = ImmutableMap.of("banana", 4, "apple", 7);
  ImmutableMap&lt;String, Long&gt; newPrices = … // Increase apple prices, leave others.
                                           //  =&gt; { "banana": 4, "apple": 9 }
  </code></pre>
  
  <p>(Let's not seek an efficient solution, as apparently <a href="https://stackoverflow.com/questions/9091449">that doesn't exist by design</a>. This question rather seeks the most idiomatic solution.)</p>