Различия между Array и ArrayList в Java
1. Размер: массив в Java имеет фиксированный размер. Мы не можем изменить размер массива после его создания. ArrayList имеет динамический размер. Когда мы добавляем элементы в ArrayList, его емкость увеличивается автоматически.
2. Производительность: в Java Array и ArrayList дают разную производительность для разных операций.
add() или get(): добавление или извлечение элемента из массива или объекта ArrayList имеет аналогичную производительность. Это операции с постоянным временем.
resize(): автоматическое изменение размера ArrayList снижает производительность. ArrayList внутренне поддерживается массивом. В resize() временный массив используется для копирования элементов из старого массива в новый массив.
3. Примитивы: массив может содержать как примитивные типы данных, так и объекты. Но ArrayList не может содержать примитивные типы данных. Он содержит только объекты.
4. Итератор: в ArrayList мы используем объект Iterator для обхода элементов. Мы используем цикл for для перебора элементов в массиве.
5. Безопасность типов: Java помогает обеспечить безопасность типов элементов в ArrayList с помощью дженериков. Массив может содержать объекты одного типа класса. Если мы пытаемся сохранить объект другого типа данных в массиве, он генерирует исключение ArrayStoreException.
6. Длина: размер ArrayList можно получить с помощью метода size(). Каждый массив имеет переменную length, которая совпадает с длиной/размером массива.
7. Добавление элементов: в ArrayList мы можем использовать метод add() для добавления объектов. В массиве используется оператор присваивания для добавления элементов.
8. Многомерность: массив может быть многомерным. ArrayList всегда одномерный.
Пример различий между массивами и ArrayList
import java.util.ArrayList;
import java.util.Arrays;
class Test {
public static void main(String args[]) {
// Обычный массив
int[] arr = new int[2];
arr[0] = 100;
arr[1] = 200;
System.out.println(arr[0]);
// ArrayList
// Создаем ArrayList с начальной емкостью 2
ArrayList<Integer> arrayList = new ArrayList<Integer>(2);
// Добавляем элементы в ArrayList
arrayList.add(300);
arrayList.add(400);
// Доступ к элементам ArrayList
System.out.println(arrayList.get(0));
}
}
Вывод:
100
300
Читайте также:
Комментарии
Отправить комментарий