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