title: Stream groupingBy by one field then merge all others
body: <p>I have trouble with stream groupingby.</p>
  
  <pre><code>List&lt;FAR&gt; listFar = farList.stream().filter(f -&gt; !f.getStatus().equals(ENUM.STATUS.DELETED))
              .collect(Collectors.toList());
  List&lt;HAUL&gt; haulList = listFar.stream().map(f -&gt; f.getHaul()).flatMap(f -&gt; f.stream())
              .collect(Collectors.toList());
  </code></pre>
  
  <p>It groups by specie, it's all fine, but there are another attributes to HAUL.</p>
  
  <pre><code>Map&lt;Specie, List&lt;HAUL&gt;&gt; collect = haulList.stream().collect(Collectors.groupingBy(HAUL::getSpecie));
  </code></pre>
  
  <p>Attributes:</p>
  
  <ol>
  <li><code>haul.getFishCount();</code> (Integer)</li>
  <li><code>haul.getFishWeight();</code> (BigDecimal)</li>
  </ol>
  
  <p>Is it possible to group by <code>HAUL::getSpecie</code> (by Specie), but also "merging" together those two extra fields, so I have total?</p>
  
  <p><strong>For example:</strong> I have 3 of HAUL elements where fish specie A has 50/30/10 kg in weight.</p>
  
  <p>Can I <em>group it by specie</em> and have total weight?</p>