title: Java 8 Lambda - Filter collection by another collection
body: <p>I have a <code>Set&lt;String&gt; usernames</code>
  and <code>List&lt;Player&gt; players</code></p>
  
  <p>I would like to filter out those players that are not in the Set.</p>
  
  <p>I know how to do this in Vanilla pre Java 8</p>
  
  <pre><code>List&lt;Player&gt; distinctPlayers = new ArrayList&lt;Player&gt;();
  
  for(Player p : players) {
      if(!usernames.contains(p.getUsername()) distinctPlayers.add(p);
  } 
  </code></pre>
  
  <p>I am trying to write this simple code with a Lambda expression, but I am struggling to get <code>usernames.contains()</code> to work in a filter</p>
  
  <pre><code>players.stream().filter(!usernames.contains(p -&gt; p.getUsername()))
  .collect(Collectors.toList());
  </code></pre>
  
  <p>This doesn't compile. <em>"Cannot resove method getUsername()"</em></p>