/* package whatever; // don't place package name! */ import java.util.*; import java.util.stream.*; import java.util.function.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { { List<Integer> data = IntStream.range(0, 10).boxed().collect(Collectors.toList()); } private static <T> List<List<T>> getEndTruncatedSubListsOf(List<T> list) { return getSubListsOf(list, i -> list.subList(0, list.size() - i)); } private static <T> List<List<T>> getFrontTruncatedSubListsOf(List<T> list) { return getSubListsOf(list, i -> list.subList(i, list.size())); } private static <T> List<List<T>> getSubListsOf(List<T> list, IntFunction<List<T>> truncfn) { return IntStream.range(0, list.size()) .mapToObj(i -> truncfn.apply(i)) .collect(Collectors.toList()); } }
Standard input is empty
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 2, 3, 4, 5, 6, 7, 8] [0, 1, 2, 3, 4, 5, 6, 7] [0, 1, 2, 3, 4, 5, 6] [0, 1, 2, 3, 4, 5] [0, 1, 2, 3, 4] [0, 1, 2, 3] [0, 1, 2] [0, 1] [0] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 3, 4, 5, 6, 7, 8, 9] [3, 4, 5, 6, 7, 8, 9] [4, 5, 6, 7, 8, 9] [5, 6, 7, 8, 9] [6, 7, 8, 9] [7, 8, 9] [8, 9] [9]