title: ConcurrentModificationException when using stream with Maps key set
body: <p>I want to remove all items from <code>someMap</code> which keys are not present in <code>someList</code>. Take a look into my code:</p>
  
  <pre><code>someMap.keySet().stream().filter(v -&gt; !someList.contains(v)).forEach(someMap::remove);
  </code></pre>
  
  <p>I receive <code>java.util.ConcurrentModificationException</code>. Why? Stream is not parallel. What is the most elegant way to do this?</p>