Рубрики

Массив против ArrayList в Java

В Java следующие два разных способа создания массива.

  1. Массив: простые массивы фиксированного размера, которые мы создаем в Java, как показано ниже
          int arr[] = new int[10]   
  2. ArrayList : массивы динамического размера в Java, которые реализуют интерфейс List.
          ArrayList<Type> arrL = new ArrayList<Type>();
          Here Type is the type of elements in ArrayList to
          be created
        

Различия между Array и ArrayList

  • Массив — это базовая функциональность, предоставляемая Java. ArrayList является частью коллекции коллекции в Java. Поэтому доступ к членам массива осуществляется с помощью [], в то время как ArrayList имеет набор методов для доступа к элементам и их изменения.

    // Java-программа для демонстрации различий между массивами
    // и ArrayList

    import java.util.ArrayList;

    import java.util.Arrays;

      

    class Test

    {

        public static void main(String args[])

        {

            / * ........... Нормальный массив ............. * /

            int[] arr = new int[2];

            arr[0] = 1;

            arr[1] = 2;

            System.out.println(arr[0]);

      

            /*............ArrayList..............*/

            // Создать arrayList с начальной емкостью 2

            ArrayList<Integer> arrL = new ArrayList<Integer>(2);

      

            // Добавить элементы в ArrayList

            arrL.add(1);

            arrL.add(2);

      

            // Доступ к элементам ArrayList

            System.out.println(arrL.get(0));

        }

    }

    Выход:

    1
    1
  • ,

  • Array — это структура данных фиксированного размера, а ArrayList — нет. Не нужно упоминать размер Arraylist при создании его объекта. Даже если мы укажем некоторую начальную емкость, мы можем добавить больше элементов.

    // Java-программа для демонстрации различий между массивами
    // и ArrayList

    import java.util.ArrayList;

    import java.util.Arrays;

    class Test

    {

        public static void main(String args[])

        {

            / * ........... Нормальный массив ............. * /

            // Нужно указать размер для массива

            int[] arr = new int[3];

            arr[0] = 1;

            arr[1] = 2;

            arr[2] = 3;

            // Мы не можем добавить больше элементов в массив arr []

      

            /*............ArrayList..............*/

            // Не нужно указывать размер

            ArrayList<Integer> arrL = new ArrayList<Integer>();

            arrL.add(1);

            arrL.add(2);

            arrL.add(3);

            arrL.add(4);

            // Мы можем добавить больше элементов в arrL

      

            System.out.println(arrL);

            System.out.println(Arrays.toString(arr));

        }

    }

    Выход:

    [1, 2, 3, 4]
    [1, 2, 3]
  • ,

  • Массив может содержать как примитивные типы данных, так и объекты класса в зависимости от определения массива. Однако ArrayList поддерживает только записи объектов, а не примитивные типы данных.
    Примечание: когда мы делаем arraylist.add (1); : он преобразует примитивный тип данных int в объект Integer. Образец кода:

    import java.util.ArrayList;

    class Test

    {

        public static void main(String args[])

        {

           // позволил

            int[] array = new int[3];

      

            // разрешено, однако, нужно инициализировать

            Test[] array1 = new Test[3];

      

            // не допускается (раскомментирование ниже строки вызывает

            // ошибка компилятора)

            // ArrayList <char> arrL = new ArrayList <char> ();

      

            // Позволил

            ArrayList<Integer> arrL1 = new ArrayList<>();

            ArrayList<String> arrL2 = new ArrayList<>();

            ArrayList<Object> arrL3 = new ArrayList<>();

        }

    }

  • ,

  • Поскольку ArrayList не может быть создан для примитивных типов данных, члены ArrayList всегда являются ссылками на объекты в разных местах памяти (подробности см. В этом разделе). Поэтому в ArrayList фактические объекты никогда не хранятся в смежных местах. Ссылки на реальные объекты хранятся в смежных местах.
    В массиве это зависит, является ли массив массивом примитивного типа или типом объекта. В случае примитивных типов фактические значения являются смежными местоположениями, но в случае объектов распределение аналогично ArrayList.

Как примечание, ArrayList в Java можно рассматривать как похожий на вектор в C ++ .

Эта статья предоставлена Пранджалом Матуром . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по почте на contrib@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Массив против ArrayList в Java

0.00 (0%) 0 votes