code: public EntryStream<K, V> collapseKeys(BinaryOperator<V> merger) {
          BinaryOperator<Entry<K, V>> entryMerger = (e1, e2) -> new SimpleImmutableEntry<>(e1.getKey(), merger.apply(e1
                  .getValue(), e2.getValue()));
          return new EntryStream<>(new CollapseSpliterator<>(equalKeys(), Function.identity(), entryMerger, entryMerger,
                  spliterator()), context);
      }
docs: Merge series of adjacent stream entries with equal keys combining the
  corresponding values using the provided function.
  
  <p>
  This is a <a href="package-summary.html#StreamOps">quasi-intermediate</a>
  partial reduction operation.
  
  <p>
  The key of the resulting entry is the key of the first merged entry.
  
  @param merger a non-interfering, stateless, associative function to merge
  values of two adjacent entries which keys are equal. Note that it
  can be applied to the results if previous merges.
  @return a new {@code EntryStream} which keys are the keys of the original
  stream and the values are values of the adjacent entries with the
  same keys, combined using the provided merger function.
  @see StreamEx#collapse(BiPredicate, BinaryOperator)
  @since 0.5.5