Instead of creating sublists, why not take inspiration from JDK8's spliterator interface ?