Подтвердить что ты не робот

Удалите все элементы из списка после определенного индекса

Есть ли удобный способ в List/ArrayList, с помощью которого мы можем удалить все элементы списка после определенного индекса. Вместо того, чтобы вручную перебирать его для удаления.

Чтобы быть более объяснительным, если у меня есть список из 10 элементов, я хочу упомянуть индекс 3, а затем все элементы после индекса 3 удаляются, и мой список будет состоять только из 4-х элементов теперь (подсчет от 0)

4b9b3361

Ответ 1

list.subList(4, list.size()).clear();

Подсвещенные операции отражаются в исходном списке, поэтому это очищает все от индекса 4 включительно до list.size() эксклюзивного, ака все после индекса 3. Удаление диапазона конкретно используется в качестве примера в документации:

Этот метод устраняет необходимость в явных операциях диапазона (из сортировка, которая обычно существует для массивов). Любая операция, ожидающая список может использоваться как операция диапазона, передавая представление сублиста вместо целого списка. Например, следующая идиома удаляет диапазон элементов из списка:

     list.subList(from, to).clear();

Ответ 2

Использование sublist() и clear(),

public class Count
{
    public static void main(String[] args)
    {
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("1");
        arrayList.add("2");
        arrayList.add("3");
        arrayList.add("4");
        arrayList.add("5");
        arrayList.subList(2, arrayList.size()).clear();
        System.out.println(arrayList.size());
    }
}