import java.util.List;
import java.util.Arrays;
import java.util.Collections;
import java.util.stream.Stream;
import java.util.stream.Collector;
import java.util.stream.Collectors;
public class MyClass
{
public static <T> Collector<T, ?, Stream<T>> reverse() {
return Collectors.collectingAndThen(Collectors.toList(), list -> {
Collections.reverse(list);
return list.stream();
});
}
public static void main(String[] args)
{
List<Integer> lists = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
Stream<Integer> parallelstream = lists.parallelStream();
parallelstream.collect(reverse()).forEach(System.out::println);
}
}
/*
run:
7
6
5
4
3
2
1
*/