Java: Eine Liste in zwei Unterlisten aufteilen?

Was ist die einfachste, standardmässigste und / oder effizienteste Möglichkeit, eine Liste in Java in zwei Unterlisten aufzuteilen? Es ist in Ordnung, die ursprüngliche Liste zu mutieren, daher sollte kein Kopieren erforderlich sein. Die Methodensignatur könnte @ se

/** Split a list into two sublists. The original list will be modified to
 * have size i and will contain exactly the same elements at indices 0 
 * through i-1 as it had originally; the returned list will have size 
 * len-i (where len is the size of the original list before the call) 
 * and will have the same elements at indices 0 through len-(i+1) as 
 * the original list had at indices i through len-1.
 */
<T> List<T> split(List<T> list, int i);

[EDIT]List.subList gibt eine Ansicht in der Originalliste zurück, die ungültig wird, wenn das Original geändert wird. Sosplit kann @ nicht verwendsubList es sei denn, es verzichtet auch auf die ursprüngliche Referenz (oder verwendet, wie in Marc Novakowskis Antwort,subList kopiert aber sofort das Ergebnis).