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

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

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

List.reverse介绍

暂无

代码示例

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

@Override
default List<T> dropRightUntil(Predicate<? super T> predicate) {
  Objects.requireNonNull(predicate, "predicate is null");
  return reverse().dropUntil(predicate).reverse();
}

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

@Override
default List<T> takeRightWhile(Predicate<? super T> predicate) {
  Objects.requireNonNull(predicate, "predicate is null");
  return reverse().takeWhile(predicate).reverse();
}

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

/**
 * Creates a Queue consisting of a front List and a rear List.
 * <p>
 * For a {@code Queue(front, rear)} the following invariant holds: {@code Queue is empty <=> front is empty}.
 * In other words: If the Queue is not empty, the front List contains at least one element.
 *
 * @param front A List of front elements, in correct order.
 * @param rear  A List of rear elements, in reverse order.
 */
private Queue(io.vavr.collection.List<T> front, io.vavr.collection.List<T> rear) {
  final boolean frontIsEmpty = front.isEmpty();
  this.front = frontIsEmpty ? rear.reverse() : front;
  this.rear = frontIsEmpty ? front : rear;
}

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

@Override
default List<T> removeLast(Predicate<T> predicate) {
  Objects.requireNonNull(predicate, "predicate is null");
  final List<T> removedAndReversed = reverse().removeFirst(predicate);
  return removedAndReversed.length() == length() ? this : removedAndReversed.reverse();
}

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

@Override
default <U> List<U> map(Function<? super T, ? extends U> mapper) {
  Objects.requireNonNull(mapper, "mapper is null");
  List<U> list = empty();
  for (T t : this) {
    list = list.prepend(mapper.apply(t));
  }
  return list.reverse();
}

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

@Override
default List<T> takeRight(int n) {
  if (n <= 0) {
    return empty();
  }
  if (n >= length()) {
    return this;
  }
  return reverse().take(n).reverse();
}

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

@Override
default <U> List<U> flatMap(Function<? super T, ? extends Iterable<? extends U>> mapper) {
  Objects.requireNonNull(mapper, "mapper is null");
  List<U> list = empty();
  for (T t : this) {
    for (U u : mapper.apply(t)) {
      list = list.prepend(u);
    }
  }
  return list.reverse();
}

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

/**
 * Creates a List that contains the elements of the given {@link java.util.stream.Stream}.
 *
 * @param javaStream A {@link java.util.stream.Stream}
 * @param <T>        Component type of the Stream.
 * @return A List containing the given elements in the same order.
 */
static <T> List<T> ofAll(java.util.stream.Stream<? extends T> javaStream) {
  Objects.requireNonNull(javaStream, "javaStream is null");
  final java.util.Iterator<? extends T> iterator = javaStream.iterator();
  List<T> list = List.empty();
  while (iterator.hasNext()) {
    list = list.prepend(iterator.next());
  }
  return list.reverse();
}

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

@Override
default Tuple2<List<T>, List<T>> partition(Predicate<? super T> predicate) {
  Objects.requireNonNull(predicate, "predicate is null");
  List<T> left = empty(), right = empty();
  for (T t : this) {
    if (predicate.test(t)) {
      left = left.prepend(t);
    } else {
      right = right.prepend(t);
    }
  }
  return Tuple.of(left.reverse(), right.reverse());
}

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

@Override
default <T1, T2> Tuple2<List<T1>, List<T2>> unzip(
    Function<? super T, Tuple2<? extends T1, ? extends T2>> unzipper) {
  Objects.requireNonNull(unzipper, "unzipper is null");
  List<T1> xs = Nil.instance();
  List<T2> ys = Nil.instance();
  for (T element : this) {
    final Tuple2<? extends T1, ? extends T2> t = unzipper.apply(element);
    xs = xs.prepend(t._1);
    ys = ys.prepend(t._2);
  }
  return Tuple.of(xs.reverse(), ys.reverse());
}

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

@Override
default List<T> prependAll(Iterable<? extends T> elements) {
  Objects.requireNonNull(elements, "elements is null");
  return isEmpty() ? ofAll(elements) : ofAll(elements).reverse().foldLeft(this, List::prepend);
}

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

@Override
public Queue<T> reverse() {
  return isEmpty() ? this : ofAll(toList().reverse());
}

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

@Override
public io.vavr.collection.List<T> toList() {
  io.vavr.collection.List<T> results = io.vavr.collection.List.empty();
  for (PriorityQueue<T> queue = this; !queue.isEmpty(); ) {
    final Tuple2<T, PriorityQueue<T>> dequeue = queue.dequeue();
    results = results.prepend(dequeue._1);
    queue = dequeue._2;
  }
  return results.reverse();
}

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

@Override
public int indexOf(T element, int from) {
  final int frontIndex = front.indexOf(element, from);
  if (frontIndex != -1) {
    return frontIndex;
  } else {
    // we need to reverse because we search the first occurrence
    final int rearIndex = rear.reverse().indexOf(element, from - front.length());
    return (rearIndex == -1) ? -1 : rearIndex + front.length();
  }
}

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

@Override
default List<T> takeWhile(Predicate<? super T> predicate) {
  Objects.requireNonNull(predicate, "predicate is null");
  List<T> result = Nil.instance();
  for (List<T> list = this; !list.isEmpty() && predicate.test(list.head()); list = list.tail()) {
    result = result.prepend(list.head());
  }
  return result.length() == length() ? this : result.reverse();
}

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

@Override
default List<T> take(int n) {
  if (n <= 0) {
    return empty();
  }
  if (n >= length()) {
    return this;
  }
  List<T> result = Nil.instance();
  List<T> list = this;
  for (int i = 0; i < n; i++, list = list.tail()) {
    result = result.prepend(list.head());
  }
  return result.reverse();
}

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

@Override
default Tuple2<List<T>, List<T>> splitAt(Predicate<? super T> predicate) {
  if (isEmpty()) {
    return Tuple.of(empty(), empty());
  } else {
    final Tuple2<List<T>, List<T>> t = SplitAt.splitByPredicateReversed(this, predicate);
    if (t._2.isEmpty()) {
      return Tuple.of(this, empty());
    } else {
      return Tuple.of(t._1.reverse(), t._2);
    }
  }
}

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

static <T> Stream<T> apply(io.vavr.collection.List<T> front, io.vavr.collection.List<T> rear, Stream<T> remaining) {
    if (remaining.isEmpty()) {
      return remaining;
    } else if (front.isEmpty()) {
      return apply(rear.reverse(), io.vavr.collection.List.empty(), remaining);
    } else {
      return Stream.cons(front.head(),
          () -> apply(front.tail(), rear.prepend(remaining.head()), remaining.tail()));
    }
  }
}

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

@Override
default Tuple2<List<T>, List<T>> splitAt(int n) {
  if (isEmpty()) {
    return Tuple.of(empty(), empty());
  } else {
    List<T> init = Nil.instance();
    List<T> tail = this;
    while (n > 0 && !tail.isEmpty()) {
      init = init.prepend(tail.head());
      tail = tail.tail();
      n--;
    }
    return Tuple.of(init.reverse(), tail);
  }
}

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

@Override
default Tuple2<List<T>, List<T>> splitAtInclusive(Predicate<? super T> predicate) {
  if (isEmpty()) {
    return Tuple.of(empty(), empty());
  } else {
    final Tuple2<List<T>, List<T>> t = SplitAt.splitByPredicateReversed(this, predicate);
    if (t._2.isEmpty() || t._2.tail().isEmpty()) {
      return Tuple.of(this, empty());
    } else {
      return Tuple.of(t._1.prepend(t._2.head()).reverse(), t._2.tail());
    }
  }
}

相关文章