Pra começar seria subList (0, 5), não (0, 4). (É como o método “substring” onde o primeiro argumento é o início, e o segundo é uma posição depois do fim).
Depois, subList mostra tudo direitinho. Deve ser que você está mandando listar o array errado.
import java.util.*;
class SubLista {
public static void main (String[] args) {
List<String> lista = new ArrayList<String>();
for (int i = 1; i <= 10; ++i) {
lista.add ("String " + i);
}
// 0 == from - inclusive
// 5 == to - exclusive
List<String> aux = lista.subList (0, 5);
for (String s : aux) {
System.out.println (s);
}
}
}