import java.util.*;
import java.util.stream.*;
import static java.util.stream.IntStream.*;
import static java.util.stream.Collectors.*;

class Example {
    public static void main(String[] args) {
        final List<String> strings = range(0, 11)
                .mapToObj(i -> ((Character) (char) ('A' + i)).toString())
                .collect(toList());
        Collections.reverse(strings);
        System.out.println(strings);
    
        final List<List<String>> groups = range(0, strings.size())
                .boxed()
                .collect(groupingBy(index -> index / 4))
                .values()
                .stream()
                .map(indices -> indices
                        .stream()
                        .map(strings::get)
                        .collect(toList()))
                .collect(toList());
        System.out.println(groups);
    }
}