Различия между 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


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки