io.vavr.collection.Array.empty()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(7.0k)|赞(0)|评价(0)|浏览(158)

本文整理了Java中io.vavr.collection.Array.empty()方法的一些代码示例,展示了Array.empty()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Array.empty()方法的具体详情如下:
包路径:io.vavr.collection.Array
类名称:Array
方法名:empty

Array.empty介绍

暂无

代码示例

代码示例来源:origin: vavr-io/vavr

/**
 * Alias for {@link Array#empty()}
 *
 * @param <T> Component type of element.
 * @return A singleton instance of empty {@link Array}
 */
public static <T> Array<T> Array() {
  return Array.empty();
}

代码示例来源:origin: vavr-io/vavr

/**
 * Returns an Array containing {@code n} times the given {@code element}
 *
 * @param <T>     Component type of the Array
 * @param n       The number of elements in the Array
 * @param element The element
 * @return An Array of size {@code n}, where each element is the given {@code element}.
 */
public static <T> Array<T> fill(int n, T element) {
  return io.vavr.collection.Collections.fillObject(n, element, empty(), Array::of);
}

代码示例来源:origin: vavr-io/vavr

/**
 * Converts this to a {@link Array}.
 *
 * @return A new {@link Array}.
 */
default Array<T> toArray() {
  return ValueModule.toTraversable(this, Array.empty(), Array::of, Array::ofAll);
}

代码示例来源:origin: vavr-io/vavr

/**
 * Returns an Array containing {@code n} values supplied by a given Supplier {@code s}.
 *
 * @param <T> Component type of the Array
 * @param n   The number of elements in the Array
 * @param s   The Supplier computing element values
 * @return An Array of size {@code n}, where each element contains the result supplied by {@code s}.
 * @throws NullPointerException if {@code s} is null
 */
public static <T> Array<T> fill(int n, Supplier<? extends T> s) {
  Objects.requireNonNull(s, "s is null");
  return io.vavr.collection.Collections.fill(n, s, empty(), Array::of);
}

代码示例来源:origin: vavr-io/vavr

@Override
public Iterator<Array<T>> crossProduct(int power) {
  return io.vavr.collection.Collections.crossProduct(empty(), this, power);
}

代码示例来源:origin: vavr-io/vavr

static <T> Array<T> wrap(Object[] array) {
  return (array.length == 0) ? empty() : new Array<>(array);
}

代码示例来源:origin: vavr-io/vavr

/**
 * Returns an Array containing {@code n} values of a given Function {@code f}
 * over a range of integer values from 0 to {@code n - 1}.
 *
 * @param <T> Component type of the Array
 * @param n   The number of elements in the Array
 * @param f   The Function computing element values
 * @return An Array consisting of elements {@code f(0),f(1), ..., f(n - 1)}
 * @throws NullPointerException if {@code f} is null
 */
public static <T> Array<T> tabulate(int n, Function<? super Integer, ? extends T> f) {
  Objects.requireNonNull(f, "f is null");
  return io.vavr.collection.Collections.tabulate(n, f, empty(), Array::of);
}

代码示例来源:origin: vavr-io/vavr

@Override
public Array<T> drop(int n) {
  if (n <= 0) {
    return this;
  } else if (n >= length()) {
    return empty();
  } else {
    final Object[] arr = new Object[delegate.length - n];
    System.arraycopy(delegate, n, arr, 0, arr.length);
    return wrap(arr);
  }
}

代码示例来源:origin: vavr-io/vavr

@Override
public Array<T> dropRight(int n) {
  if (n <= 0) {
    return this;
  } else if (n >= length()) {
    return empty();
  } else {
    return wrap(copyOf(delegate, delegate.length - n));
  }
}

代码示例来源:origin: vavr-io/vavr

@Override
public <U> Array<U> flatMap(Function<? super T, ? extends Iterable<? extends U>> mapper) {
  Objects.requireNonNull(mapper, "mapper is null");
  if (isEmpty()) {
    return empty();
  } else {
    final java.util.List<U> list = new ArrayList<>();
    for (T t : this) {
      for (U u : mapper.apply(t)) {
        list.add(u);
      }
    }
    return wrap(list.toArray());
  }
}

代码示例来源:origin: vavr-io/vavr

@Override
public Array<T> filter(Predicate<? super T> predicate) {
  Objects.requireNonNull(predicate, "predicate is null");
  final java.util.List<T> list = new ArrayList<>();
  for (T t : this) {
    if (predicate.test(t)) {
      list.add(t);
    }
  }
  if (list.isEmpty()) {
    return empty();
  } else if (list.size() == size()) {
    return this;
  } else {
    return wrap(list.toArray());
  }
}

代码示例来源:origin: vavr-io/vavr

@Override
public Array<T> take(int n) {
  if (n >= length()) {
    return this;
  } else if (n <= 0) {
    return empty();
  } else {
    return wrap(copyOf(delegate, n));
  }
}

代码示例来源:origin: vavr-io/vavr

@Override
public Array<T> takeRight(int n) {
  if (n >= length()) {
    return this;
  } else if (n <= 0) {
    return empty();
  } else {
    final Object[] arr = new Object[n];
    System.arraycopy(delegate, delegate.length - n, arr, 0, n);
    return wrap(arr);
  }
}

代码示例来源:origin: vavr-io/vavr

@Override
public <T1, T2, T3> Tuple3<Array<T1>, Array<T2>, Array<T3>> unzip3(Function<? super T, Tuple3<? extends T1, ? extends T2, ? extends T3>> unzipper) {
  Objects.requireNonNull(unzipper, "unzipper is null");
  if (isEmpty()) {
    return Tuple.of(empty(), empty(), empty());
  } else {
    final Object[] xs = new Object[delegate.length];
    final Object[] ys = new Object[delegate.length];
    final Object[] zs = new Object[delegate.length];
    for (int i = 0; i < delegate.length; i++) {
      final Tuple3<? extends T1, ? extends T2, ? extends T3> t = unzipper.apply(get(i));
      xs[i] = t._1;
      ys[i] = t._2;
      zs[i] = t._3;
    }
    return Tuple.of(wrap(xs), wrap(ys), wrap(zs));
  }
}

代码示例来源:origin: vavr-io/vavr

@Override
public Tuple2<Array<T>, Array<T>> splitAtInclusive(Predicate<? super T> predicate) {
  Objects.requireNonNull(predicate, "predicate is null");
  for (int i = 0; i < delegate.length; i++) {
    final T value = get(i);
    if (predicate.test(value)) {
      if (i == delegate.length - 1) {
        return Tuple.of(this, empty());
      } else {
        return Tuple.of(take(i + 1), drop(i + 1));
      }
    }
  }
  return Tuple.of(this, empty());
}

代码示例来源:origin: vavr-io/vavr

@Override
public <T1, T2> Tuple2<Array<T1>, Array<T2>> unzip(
    Function<? super T, Tuple2<? extends T1, ? extends T2>> unzipper) {
  Objects.requireNonNull(unzipper, "unzipper is null");
  if (isEmpty()) {
    return Tuple.of(empty(), empty());
  } else {
    final Object[] xs = new Object[delegate.length];
    final Object[] ys = new Object[delegate.length];
    for (int i = 0; i < delegate.length; i++) {
      final Tuple2<? extends T1, ? extends T2> t = unzipper.apply(get(i));
      xs[i] = t._1;
      ys[i] = t._2;
    }
    return Tuple.of(wrap(xs), wrap(ys));
  }
}

代码示例来源:origin: vavr-io/vavr

@Override
public Array<T> slice(int beginIndex, int endIndex) {
  if (beginIndex >= endIndex || beginIndex >= length() || isEmpty()) {
    return empty();
  }
  if (beginIndex <= 0 && endIndex >= length()) {
    return this;
  }
  final int index = Math.max(beginIndex, 0);
  final int length = Math.min(endIndex, length()) - index;
  final Object[] arr = new Object[length];
  System.arraycopy(delegate, index, arr, 0, length);
  return wrap(arr);
}

代码示例来源:origin: vavr-io/vavr

@Override
public Array<T> subSequence(int beginIndex, int endIndex) {
  Collections.subSequenceRangeCheck(beginIndex, endIndex, length());
  if (beginIndex == endIndex) {
    return empty();
  } else if (beginIndex == 0 && endIndex == length()) {
    return this;
  } else {
    final Object[] arr = new Object[endIndex - beginIndex];
    System.arraycopy(delegate, beginIndex, arr, 0, arr.length);
    return wrap(arr);
  }
}

代码示例来源:origin: vavr-io/vavr

@Override
public Array<Array<T>> permutations() {
  if (isEmpty()) {
    return empty();
  } else if (delegate.length == 1) {
    return of(this);
  } else {
    final Array<Array<T>> zero = empty();
    return distinct().foldLeft(zero, (xs, x) -> {
      final Function<Array<T>, Array<T>> prepend = l -> l.prepend(x);
      return xs.appendAll(remove(x).permutations().map(prepend));
    });
  }
}

代码示例来源:origin: vavr-io/vavr

static <T> Array<Array<T>> apply(Array<T> elements, int k) {
    if (k == 0) {
      return Array.of(Array.empty());
    } else {
      return elements.zipWithIndex().flatMap(
          t -> apply(elements.drop(t._2 + 1), (k - 1)).map(c -> c.prepend(t._1))
      );
    }
  }
}

相关文章