ArrayList в Java — это класс, предоставляющий возможность создания массива переменной длины, который можно изменять динамически. Это означает, что вы можете добавлять и удалять элементы в массиве по мере необходимости.
Как работает ArrayList в Java
Когда вы создаете экземпляр ArrayList в Java, он автоматически выделяет память для массива, который он использует внутри себя. По умолчанию ArrayList выделяет память на 10 элементов. Однако, если вы добавляете больше элементов, чем выделено памяти, ArrayList автоматически увеличивает размер массива, чтобы вместить дополнительные элементы. Это называется «динамическим изменением размера массива».
Пример использования ArrayList в Java
Ниже приведен пример использования ArrayList в Java для создания массива строк и добавления элементов в массив.
import java.util.ArrayList; public class Main { public static void main(String[] args) { // Создаем новый экземпляр ArrayList ArrayList<String> names = new ArrayList<String>(); // Добавляем элементы в массив names.add("John"); names.add("Jane"); names.add("Jack"); names.add("Jill"); // Выводим количество элементов в массиве System.out.println("Количество элементов в массиве: " + names.size()); // Выводим элементы массива for (int i = 0; i < names.size(); i++) { System.out.println(names.get(i)); } } }
Этот код создает новый экземпляр ArrayList, добавляет четыре элемента в массив, выводит количество элементов в массиве и выводит все элементы массива на экран.
Вывод программы:
Количество элементов в массиве: 4 John Jane Jack Jill
Методы ArrayList в Java
ArrayList в Java предоставляет множество методов для работы с массивом. Некоторые из них перечислены ниже:
- add() — добавляет элемент в конец массива.
- add(int index, Object element) — добавляет элемент на указанную позицию в массиве.
- remove() — удаляет последний элемент из массива.
- remove(int index) — удаляет элемент на указанной позиции из массива.
- get(int index) — возвращает элемент на указанной позиции в массиве.
- set(int index, Object element) — заменяет элемент на указанной позиции в массиве на заданный элемент.
- size() — возвращает количество элементов в массиве.
Метод add()
Метод add()
добавляет элемент в конец списка. Например, давайте создадим список строк, затем добавим три строки в конец этого списка с помощью метода add()
:
import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); // добавление элементов в конец списка list.add("один"); list.add("два"); list.add("три"); System.out.println(list); // [один, два, три] } }
Метод add(int index, Object element)
Метод add(int index, Object element)
добавляет элемент в указанную позицию в списке. Например, давайте создадим список строк, затем добавим строку «два» в позицию 1 в этом списке с помощью метода add(int index, Object element)
:
import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); // добавление элементов в список list.add("один"); list.add("три"); // добавление элемента в указанную позицию в списке list.add(1, "два"); System.out.println(list); // [один, два, три] } }
Метод remove()
Метод remove()
удаляет последний элемент из списка. Например, давайте создадим список строк, затем удалим последний элемент этого списка с помощью метода remove()
:
import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); // добавление элементов в список list.add("один"); list.add("два"); list.add("три"); // удаление последнего элемента из списка list.remove(); System.out.println(list); // [один, два] } }
Метод remove(int index)
Метод remove(int index)
удаляет элемент на указанной позиции в списке. Например, давайте создадим список строк, затем удалим элемент в позиции 1 в этом списке с помощью метода remove(int index)
:
import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); // добавление элементов в список list.add("один"); list.add("два"); list.add("три"); // удаление элемента на указанной позиции в списке list.remove(1); System.out.println(list); // ["один", "три"] } }
Метод get(int index)
Метод get(int index)
возвращает элемент на указанной позиции в списке. Например, давайте создадим список строк, затем получим элемент в позиции 1 в этом списке с помощью метода get(int index)
:
import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); // добавление элементов в список list.add("один"); list.add("два"); list.add("три"); // получение элемента на указанной позиции в списке String element = list.get(1); System.out.println(element); // два } }
Метод set(int index, Object element)
Метод set(int index, Object element)
заменяет элемент на указанной позиции в списке. Например, давайте создадим список строк, затем заменим элемент в позиции 1 в этом списке на новую строку с помощью метода set(int index, Object element)
:
import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); // добавление элементов в список list.add("один"); list.add("два"); list.add("три"); // замена элемента на указанной позиции в списке list.set(1, "новый элемент"); System.out.println(list); // [один, новый элемент, три] } }
Метод size()
Метод size()
возвращает количество элементов в списке. Например, давайте создадим список строк, затем получим количество элементов в этом списке с помощью метода size()
:
import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); // добавление элементов в список list.add("один"); list.add("два"); list.add("три"); // получение количества элементов в списке int size = list.size(); System.out.println(size); // 3 } }
В заключение, ArrayList в Java — это мощный инструмент для работы с массивами переменной длины. Он обладает множеством методов для работы с массивом и позволяет динамически изменять его размер. Это делает ArrayList одним из наиболее полезных классов в Java.
Метод contains(Object o)
Метод contains(Object o)
возвращает true
, если список содержит указанный элемент, и false
в противном случае. Например, давайте создадим список строк, затем проверим, содержится ли строка «два» в этом списке с помощью метода contains(Object o)
:
import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); // добавление элементов в список list.add("один"); list.add("два"); list.add("три"); // проверка наличия элемента в списке boolean containsTwo = list.contains("два"); System.out.println(containsTwo); // true } }
Метод clear()
Метод clear()
удаляет все элементы из списка. Например, давайте создадим список строк, затем удалим все элементы из этого списка с помощью метода clear()
:
import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); // добавление элементов в список list.add("один"); list.add("два"); list.add("три"); // удаление всех элементов из списка list.clear(); System.out.println(list); // [] } }
Метод retainAll(Collection<?> c)
Метод retainAll(Collection<?> c)
удаляет из списка все элементы, кроме тех, которые содержатся в указанной коллекции c
. Этот метод возвращает true
, если список был изменен, и false
, если список не изменился. Например, давайте создадим два списка строк, затем удалим из первого списка все элементы, кроме тех, которые содержатся во втором списке, с помощью метода retainAll(Collection<?> c)
:
import java.util.ArrayList; import java.util.Arrays; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list1 = new ArrayList<>(Arrays.asList("один", "два", "три", "четыре")); ArrayList<String> list2 = new ArrayList<>(Arrays.asList("два", "четыре", "шесть")); boolean changed = list1.retainAll(list2); System.out.println(list1); // [два, четыре] System.out.println(changed); // true } }
Метод replaceAll(UnaryOperator<E> operator)
Метод replaceAll(UnaryOperator<E> operator)
заменяет каждый элемент в списке на результат выполнения заданного оператора UnaryOperator
. Например, давайте создадим список целых чисел, затем заменим каждый элемент списка на его квадрат с помощью метода replaceAll(UnaryOperator<E> operator)
:
import java.util.ArrayList; import java.util.Arrays; import java.util.function.UnaryOperator; public class ArrayListExample { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5)); list.replaceAll(new UnaryOperator<Integer>() { public Integer apply(Integer n) { return n * n; } }); System.out.println(list); // [1, 4, 9, 16, 25] } }
Метод indexOf(Object o)
Метод indexOf(Object o)
возвращает индекс первого вхождения указанного элемента в список или -1
, если элемент не найден. Например, давайте создадим список строк, затем найдем индекс первого вхождения строки «два» в этом списке с помощью метода indexOf(Object o)
:
import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); // добавление элементов в список list.add("один"); list.add("два"); list.add("три"); list.add("два"); // поиск индекса первого вхождения элемента в списке int index = list.indexOf("два"); System.out.println(index); // 1 } }