/** * Create a reversed Stream from a List * * @param list List to create a reversed Stream from * @return Reversed Stream */ public static <U> Stream<U> reversedStream(List<U> list){ return StreamUtils.reversedStream(list); } /**
public Stream<T> stream(){ return StreamUtils.reversedStream(values); } };
public Stream<T> stream(){ return StreamUtils.reversedStream(Arrays.asList(values)); } };
/** * Reverse a Stream * * <pre> * {@code * assertThat(StreamUtils.reverse(Stream.of(1,2,3)).collect(Collectors.toList()) ,equalTo(Arrays.asList(3,2,1))); * } * </pre> * * @param stream Stream to reverse * @return Reversed stream */ public static <U> Stream<U> reverse(Stream<U> stream){ return reversedStream(stream.collect(Collectors.toList())); } /**
/** * Reverse a Stream * * <pre> * {@code * assertThat(StreamUtils.reverse(Stream.of(1,2,3)).collect(Collectors.toList()) ,equalTo(Arrays.asList(3,2,1))); * } * </pre> * * @param stream Stream to reverse * @return Reversed stream */ public static <U> Stream<U> reverse(Stream<U> stream){ return reversedStream(stream.collect(Collectors.toList())); } /**
/** * Construct a Reveresed Sequence from the provided elements * @param elements To Construct sequence from * @return */ public static <T> SequenceM<T> reversedOf(T... elements){ return new SequenceM(StreamUtils.reversedStream(Arrays.asList(elements))); } /**
/** * Construct a Reveresed Sequence from the provided elements * @param elements To Construct sequence from * @return */ public static <T> SequenceM<T> reversedListOf(List<T> elements){ return new SequenceM(StreamUtils.reversedStream(elements)); } /**
private static List<Field> getFieldData( Class class1) { return fields.computeIfAbsent(class1, cl ->{ return reversedStream(LazySeq.iterate(class1, c->c.getSuperclass()) .takeWhile(c->c!=Object.class).toList()) .flatMap(c->Stream.of(c.getDeclaredFields())) .filter(f->!Modifier.isStatic(f.getModifiers())) .map(f -> { f.setAccessible(true); return f;}) .collect(Collectors.toList()); }); }