List.subList()
Возвращает часть списка между двумя индексами.
Доступно с: Java 1.2
Синтаксис
List<E> subList(int fromIndex, int toIndex)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| fromIndex | int | Начало отрезка (включительно). |
| toIndex | int | Конец отрезка (не включая). |
Возвращаемое значение
List<E>Представление части списка — не копия.
Примеры
Первые три элемента и остаток:
void main() {
List<Integer> nums = List.of(10, 20, 30, 40, 50);
IO.println(nums.subList(0, 3));
IO.println(nums.subList(3, nums.size()));
}Результат:
[10, 20, 30]
[40, 50]Изменения в части видны в исходном списке:
void main() {
List<Integer> nums = new ArrayList<>(List.of(1, 2, 3, 4, 5));
nums.subList(1, 3).clear();
IO.println(nums);
}Результат:
[1, 4, 5]Примечания
Результат — «окно» в исходный список: изменение одного видно в другом. Если после этого изменить размер исходного списка напрямую, работа с окном бросит ConcurrentModificationException. Нужна независимая копия — new ArrayList<>(list.subList(a, b)).
См. также
- List.get() — Возвращает элемент списка по индексу.
- Stream.limit() — Обрезает поток до первых N элементов.
- Stream.skip() — Пропускает первые N элементов потока.
Вопросы и ответы по теме
В учебнике
- Списки: List и ArrayList — Списки в Java: ArrayList, добавление, чтение и удаление элементов, неизменяемые списки List.of и списки чисел.