title: Java 8 Stream groupingby
body: <p>I have <code>List&lt;Map&lt;String, String&gt;&gt;</code> each item in the list is a map e.g</p>
  
  <pre><code>companyName - IBM
  firstName - James
  country - USA
  ...
  </code></pre>
  
  <p>I would like create a <code>Map&lt;String, List&lt;String&gt;&gt;</code> where it maps companyName to a list of of firstName
  e.g </p>
  
  <pre><code>IBM -&gt; James, Mark
  ATT -&gt; Henry, Robert..
  
  
  private Map&lt;String,List&lt;String&gt;&gt; groupByCompanyName(List&lt;Map&lt;String, String&gt;&gt; list) {
      return list.stream().collect(Collectors.groupingBy(item-&gt;item.get("companyName")));
  }
  </code></pre>
  
  <p>but this will create <code>Map&lt;String, List&lt;Map&lt;String, String&gt;&gt;</code> (mapping comanyName to a list of maps)</p>
  
  <p>how to create a <code>Map&lt;String, List&lt;String&gt;&gt;</code>?</p>