Видалити всі елементи зі списку після певного індексу


83

Чи є якийсь зручний спосіб у List / ArrayList, за допомогою якого ми можемо видалити всі елементи Списку після певного індексу. Замість того, щоб вручну перебирати його для видалення.

Щоб бути більш пояснювальним, якщо у мене є список з 10 елементів, я хочу згадати індекс 3, а потім усі елементи після індексу 3 видаляються, і мій список міг би складатися лише з початкових 4 елементів зараз (від 0)

Відповіді:


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

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

Цей метод усуває необхідність у явних операціях діапазону (типу, який зазвичай існує для масивів). Будь-яка операція, яка очікує на список, може бути використана як операція діапазону, передавши подання підсписку замість цілого списку. Наприклад, наступна ідіома вилучає діапазон елементів зі списку:

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

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());
    }
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.