code: public static <E extends Comparable<? super E>> Stream<E> filteringMaxKeys(Stream<E> stream, int numberOfMaxes) {
  
          return filteringMaxKeys(stream, numberOfMaxes, Comparator.naturalOrder());
      }
docs: <p>Generates a stream composed of the N greatest different values of the provided stream, compared using the
  natural order. This method calls the <code>filteringMaxKeys()</code> with the natural order comparator,
  please refer to this javadoc for details. </p>
  <p>A <code>NullPointerException</code> will be thrown if the provided stream is null. </p>
  <p>An <code>IllegalArgumentException</code> is thrown if N is lesser than 1. </p>
  
  @param stream        the processed stream
  @param numberOfMaxes the number of different max values that should be returned. Note that the total number of
  values returned may be larger if there are duplicates in the stream
  @param <E>           the type of the provided stream
  @return the filtered stream