Использование ArrayList в Java

ArrayList — динамический массив, реализующий интерфейс List. Пользователь этого интерфейса имеет полный контроль над вставляемыми элементами и обращается к ним по позиции, а также ищет элементы в списке.

ArrayList реализует все методы List, более того, класс имеет свои собственные методы, такие как манипулирование размером массива, используемого для хранения списка. Этот класс эквивалентен  Vector.
Arraylist использует массив, в котором хранятся данные, этот массив имеет возможность, которая автоматически адаптируется при каждой вставке элемента. Существует метод ensureCapacity, который увеличивает емкость ArrayList перед добавлением большого количества элементов, чтобы гарантировать, что size.

Доступ к списку одновременно осуществляется несколькими потоками. Это может вызвать проблемы, когда дело доходит до изменения, вставки, удаления, потому что другой поток будет получать доступ и обновлять размер списка. Решение состоит в том, чтобы синхронизировать процессы с помощью Collections.synchronizedList.

Список списков = Collections.synchronizedList(new ArrayList(...));

Для просмотра списка с помощью класса iterator или listIterator, но если список был изменен: delete, insert... После создания итератора последний выдаст исключение ConcurrentModificationException. Решение состоит в том, чтобы создать взаимное исключение, целью которого является предотвращение доступа других потоков к нему после создания итератора и во время read.

Constructors

ArrayList имеет три конструктора:

- ArrayList(): Создает пустой список с начальным размером 10.
- ArrayList(Collection c): создает список из коллекции данных и генерирует исключение NullPointerException если коллекция имеет значение null.
- ArrayList(int capacite): Создает список, устанавливая начальный размер, и выбрасывает исключение IllegalArgumentException, если размер отрицательный.

Methods

1) add(Object o): добавляет элемент в end.
list.add("Hello");

2) add(int indice, Object o): Вставить в middle.
list.add(3, "e");
Вставляет строку String в третью позицию.

3) addAll(Collection c): Добавить коллекцию.
ArrayList l1 = new ArrayList();
l1.add("слово");
l1.add(12);
l1.add(10.4f);
list.addAll(l1);
Этот метод добавляет еще один список l1 в конце списка list.

4) addAll(int index, Collection c): Добавить коллекцию в middle.
list.addAll(3, l1);
Вставьте список l1 в позицию 3. Другие элементы с индексом больше 3 будут offset.

5) clear(): Удалить все элементы.

6) contains(Object o): Element Membership.
boolean b = list.contains(o)
Значение b истинно, если объект o принадлежит list.

8) ensureCapacity(int capacite): увеличивает емкость, гарантирует, что она может вместить некоторое количество элементов с минимальной емкостью.
list.ensureCapacity(10);
Это увеличит емкость на 10 элементов.

9) get(int index): возвращает объект в одну позицию.
system.out.println(list.get(2));
Эта функция отображает второй объект, хранящийся в списке.

10) indexOf(Object o): Возвращает индекс элемента.
int k = indexOf("o4");
Целочисленная переменная k получит индекс первого вхождения объекта o4. Мы сказали, что хорошо, только первый. occurrence.

11) isEmpty(): Возвращает true, если список пуст.
boolean b = list.isEmpty();
Если список пуст, b имеет значение true.

12) remove(Object o): Удаляет первое вхождение объекта o.
boolean b = list.remove("o4");
Возвращает true, если объект существует и был успешно удален.

13) removeAll(Collection c): Удаляет элементы, которые находятся в коллекции, переданные в качестве аргументов.
AarrayList< Строка> lc = новый ArrayList< Строка> ();
lc . add("o1");
lc . add("o2");
lc . add("o3");
list.removeAll(lc);
Ищет элементы и удаляет их.

14) removeRange( int start, int end): Удаляет элементы, которые находятся между начальным и конечным индексами.
list.removeRange(3,8);
Эта процедура удаляет элементы от 3 до 8.

15) retainsAll(Collection c): сохраняет только те элементы, которые находятся в коллекции c.

16) set(int index, Object o): изменяет объект на определенную позицию.
list.set(3, "o5");
Объект в позиции 3 был заменен на o5.

17) size(): возвращает количество элементов.

18) subList(int start, int end): возвращает фрагмент между началом и концом.

19) toArray(): возвращает массив одного измерения.
String[] t = list.toArray();
Массив t содержит все объекты в списке. Этот метод полезен, когда у вас есть функция, которая принимает только массивы, например.

20) trimToSize(): уменьшает емкость хранилища до максимального уровня.

Как просмотреть ArrayList

Вы можете просматривать ArrayList двумя методами:

1) Цикл для

for(int i = 0; i < list.size(); i++)
    system.out.println(list.get(i));
или, например, если мы знаем тип:
for(Целое число: список)
    system.out.println(число);

2) Итератор + While

Iterator itr = list.iterator();
while(itr.hasNext())
      system.out.println(itr.next());

Example

import java.util.ArrayList; 

public class Test {

public static void main(String[] args) {

//создаем список массивов с начальной емкостью 4
ArrayList str = new ArrayList(4);

//Add
str.add("o1");
str.add("o2");
str.add("o3");
str.add("o4");

//Некоторые методы, которые мы видели
System.out.println("index of "+"o2: "+str.indexOf("o2"));
System.out.println("o3 существует?" +str.contains("o3"));
System.out.println("o2 успешно удален: "+str.remove("o2"));
System.out.println("size: "+str.size());
System.out.println("[1, 3] : "+str.subList(1, 3));

//parcours
for(String s : str)
System.out.println(s);

str.clear();
System.out.println("список пуст?" +str.isEmpty());

}
}
References:
javadoc: ArrayList