Использование 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 extends E> 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"); |
3) addAll(Collection c): Добавить коллекцию.
ArrayList l1 = new ArrayList(); l1.add("слово"); l1.add(12); l1.add(10.4f); list.addAll(l1); |
4) addAll(int index, Collection c): Добавить коллекцию в middle.
list.addAll(3, l1); |
5) clear(): Удалить все элементы.
6) contains(Object o): Element Membership.
boolean b = list.contains(o) |
8) ensureCapacity(int capacite): увеличивает емкость, гарантирует, что она может вместить некоторое количество элементов с минимальной емкостью.
list.ensureCapacity(10); |
9) get(int index): возвращает объект в одну позицию.
system.out.println(list.get(2)); |
10) indexOf(Object o): Возвращает индекс элемента.
int k = indexOf("o4"); |
11) isEmpty(): Возвращает true, если список пуст.
boolean b = list.isEmpty(); |
12) remove(Object o): Удаляет первое вхождение объекта o.
boolean b = list.remove("o4"); |
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); |
15) retainsAll(Collection > c): сохраняет только те элементы, которые находятся в коллекции c.
16) set(int index, Object o): изменяет объект на определенную позицию.
list.set(3, "o5"); |
17) size(): возвращает количество элементов.
18) subList(int start, int end): возвращает фрагмент между началом и концом.
19) toArray(): возвращает массив одного измерения.
String[] t = list.toArray(); |
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;References:
public class Test {
public static void main(String[] args) {
//создаем список массивов с начальной емкостью 4
ArrayListstr = 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());
}
}
javadoc: ArrayList