Класс ArrayList в Java расширяет AbstractList и реализует интерфейс List. ArrayList поддерживает динамические массивы, которые могут расти по мере необходимости.

Стандартные массивы Java имеют фиксированную длину. После создания массивов они не могут расти или сокращаться, а это значит, что вы должны заранее знать, сколько элементов будет удерживать массив.

Списки массивов создаются с начальным размером. Когда этот размер превышен, коллекция автоматически увеличивается. Когда объекты удаляются, массив может быть сокращен.

Конструкторы

Ниже приведен список конструкторов, предоставляемых классом ArrayList.

Конструктор и описание
1ArrayList( )
Этот конструктор создает пустой список массивов.
2ArrayList(Collection c)
Этот конструктор строит список массивов, который инициализируется элементами коллекции c.
3ArrayList(int capacity)
Этот конструктор создает список массивов с указанной начальной capacity. Емкость - это размер базового массива, который используется для хранения элементов. Емкость растет автоматически по мере добавления элементов в список массивов.

Методы

Помимо методов, унаследованных от родительских классов, ArrayList определяет следующие методы:

Метод и описание
1void add(int index, Object element)
Вставляет указанный элемент в указанный индекс позиции в этом списке. Выбрасывает IndexOutOfBoundsException, если указанный индекс выходит за допустимые пределы (index < 0 || index > size()).
2boolean add(Object o)
Добавляет указанный элемент в конец этого списка.
3boolean addAll(Collection c)
Добавляет все элементы в указанной коллекции в конец этого списка в том порядке, в котором они возвращаются итератором указанной коллекции. Вызывает NullPointerException, если указанная коллекция имеет значение null (нулевая).
4boolean addAll(int index, Collection c)
Вставляет все элементы указанной коллекции в этот список, начиная с указанной позиции. Вызывает NullPointerException, если указанная коллекция имеет значение null.
5void clear()
Удаляет все элементы из этого списка.
6Object clone()
Возвращает неглубокую копию этого массива.
7boolean contains(Object o)
Возвращает true, если этот список содержит указанный элемент. Если точнее, то возвращает true тогда и только тогда, когда этот список содержит хотя бы один элемент e такой, что (o==null ? e==null : o.equals(e)).
8void ensureCapacity(int minCapacity)
Увеличивает емкость этого экземпляра ArrayList, если это необходимо, чтобы гарантировать, что он может удерживать, по крайней мере, количество элементов, заданных аргументом минимальной емкости.
9Object get(int index)
Возвращает элемент в указанной позиции в этом списке. Вызывает IndexOutOfBoundsException, если указанный индекс выходит за допустимые пределы (index < 0 || index >= size()).
10int indexOf(Object o)
Возвращает индекс в этом списке первого упоминания указанного элемента или -1, если List не содержит этот элемент.
11int lastIndexOf(Object o)
Возвращает индекс в этом списке последнего упоминания указанного элемента или -1, если List не содержит этот элемент.
12Object remove(int index)
Удаляет элемент в указанной позиции в этом списке. Вызывает IndexOutOfBoundsException, если индекс выходит за допустимые пределы (index < 0 || index >= size()).
13protected void removeRange(int fromIndex, int toIndex)
Удаляет из этого списка все элементы, индекс которых находится между fromIndex, включительно, и toIndex, исключительно.
14Object set(int index, Object element)
Заменяет элемент в указанной позиции в этом списке указанным элементом. Вызывает IndexOutOfBoundsException, если указанный индекс выходит за допустимые пределы (index < 0 || index >= size()).
15int size()
Возвращает количество элементов в этом списке.
16Object[] toArray()
Возвращает массив, содержащий все элементы в этом списке в правильном порядке. Вызывает NullPointerException, если указанный массив равен null (нулевой).
17Object[] toArray(Object[] a)
Возвращает массив, содержащий все элементы в этом списке в правильном порядке; тип выполнения возвращаемого массива - тип указанного массива.
18void trimToSize()
Обрезает емкость этого экземпляра ArrayList до его текущих размеров.

Пример

Следующая демонстрирует работу нескольких методов, поддерживаемых ArrayList в Java:

import java.util.*;
public class ArrayListDemo {

   public static void main(String args[]) {
      //  Инициализация ArrayList
      // Создаём ArrayList
      ArrayList al = new ArrayList();
      System.out.println("Изначальный размер al: " + al.size());

      // Добавляем элементы в ArrayList
      al.add("C");
      al.add("A");
      al.add("E");
      al.add("B");
      al.add("D");
      al.add("F");
      al.add(1, "A2");
      System.out.println("Размер al после добавлений: " + al.size());

      // Выводим на экран элементы ArrayList
      System.out.println("Содержимое al: " + al);

      // Удаляем элементы из ArrayList
      al.remove("F");
      al.remove(2);
      System.out.println("Размер al после удалений: " + al.size());
      System.out.println("Содержимое al: " + al);
   }
}

Получим следующий результат:

Изначальный размер al: 0
Размер al после добавлений: 7
Содержимое al: [C, A2, A, E, B, D, F]
Размер al после удалений: 5
Содержимое al: [C, A2, E, B, D]

Оглавление