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

83

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

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

Абхи
источник

Ответы:

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

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

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

     list.subList(from, to).clear();
user2357112 поддерживает Монику
источник
13

Используя 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());
    }
}
AJJ
источник