code: @SuppressWarnings("unchecked")
      public <V> EntryStream<T, V> cross(V... other) {
          if (other.length == 0)
              return new EntryStream<>(Spliterators.emptySpliterator(), context);
          if (other.length == 1)
              return mapToEntry(e -> other[0]);
          return cross(t -> of(other));
      }
docs: Performs a cross product of current stream with specified array of
  elements. As a result the {@link EntryStream} is created whose keys are
  elements of current stream and values are elements of the specified
  array.
  
  <p>
  The resulting stream contains all the possible combinations of keys and
  values.
  
  <p>
  For example, writing {@code StreamEx.of(1, 2).cross("a", "b")}, you will
  have an ordered stream of the following entries: {@code [1, "a"], [1, "b"],
  [2, "a"], [2, "b"]}.
  
  <p>
  This is an <a href="package-summary.html#StreamOps">intermediate</a>
  operation.
  
  @param <V> the type of array elements
  @param other the array to perform a cross product with
  @return the new {@code EntryStream}
  @throws NullPointerException if other is null
  @since 0.2.3