title: groupingBy returns Object for key as Map when it should use String
body: <p>Let's say I have a list of Brand objects. The POJO contains a getName() that returns a string. I want to build a 
  <code>Map&lt;String, Brand&gt;</code>
  out of this with the String being the name... but I want the key to be <strong>case insensitive</strong>.</p>
  
  <p>How do I make this work using Java streams? Trying:</p>
  
  <pre><code>brands.stream().collect(Collectors.groupingBy(brand -&gt; brand.getName().toLowerCase()));
  </code></pre>
  
  <p>doesn't work, which I think is because I'm not using groupBy correctly. </p>