Какой самый простой, самый стандартный и/или наиболее эффективный способ разбиения списка на два под-списка в Java? Это нормально, чтобы изменить исходный список, поэтому копирование не требуется. Подпись метода может быть
/** 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
возвращает представление в исходном списке, которое становится недействительным, если оригинал изменен. Поэтому split
не может использовать subList
, если он также не обходится с исходной ссылкой (или, как в ответе Марка Новаковского, использует subList
, но сразу же копирует результат).