
com.simplaex.bedrock.SeqReversed Maven / Gradle / Ivy
package com.simplaex.bedrock;
import javax.annotation.Nonnegative;
import javax.annotation.Nonnull;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Objects;
class SeqReversed extends Seq {
private final Object[] backingArray;
SeqReversed(@Nonnull final Object[] array) {
this.backingArray = array;
}
@SuppressWarnings("unchecked")
@Override
public E get(@Nonnegative final int index) {
checkBounds(index);
return (E) backingArray[backingArray.length - index - 1];
}
@Nonnull
@Override
public Seq reversed() {
return new SeqSimple<>(backingArray);
}
@SuppressWarnings("unchecked")
@Nonnull
@Override
public Seq sorted() {
final Object[] array = backingArray.clone();
Arrays.sort(array, NULL_ACCEPTING_COMPARATOR);
return new SeqSimpleSorted(array);
}
@SuppressWarnings("unchecked")
@Nonnull
@Override
public Seq sortedBy(@Nonnull final Comparator super E> comparator) {
Objects.requireNonNull(comparator);
final Object[] array = backingArray.clone();
Arrays.sort(array, (Comparator
© 2015 - 2025 Weber Informatics LLC | Privacy Policy