Массив и массив

Anonim

Что такое Array и ArrayList?

Оба массива и ArrayList представляют собой структуры данных на основе индексов, которые часто используются в программах Java. Концептуально говоря, ArrayList внутренне поддерживается массивами, однако понимание различия между ними является ключом к тому, чтобы стать отличным разработчиком Java. Это основной шаг для начинающих, особенно начинающих, которые только начали кодирование. Хотя оба используются для хранения элементов на Java, которые могут быть либо примитивами, либо объектами, они имеют свою долю различий в функциональности и производительности. Основное различие между ними состоит в том, что Array является статическим, а ArrayList - динамическим по своей природе. Эта статья сравнивает эти два аспекта по различным аспектам, чтобы вы могли выбирать один из них.

Разница между Array и Arraylist

  1. Resizable

Одним из основных и заметных различий между двумя структурами данных является то, что массив является статическим по своей природе, что означает, что он является типом данных фиксированной длины, в то время как ArrayList является динамическим по своей природе, что означает, что это структура данных с переменной длиной. С технической точки зрения, длина массива не может быть изменена или изменена после создания объекта Array. Он содержит последовательный набор элементов одного и того же типа данных. Массивы в Java работают иначе, чем они работают на C / C ++. ArrayList, с другой стороны, может изменять размеры и массивы могут расти по мере необходимости. Поскольку это динамическая структура данных, элементы могут быть добавлены и удалены из списка.

  1. Дженерики

Вы не можете создавать массивы общих классов интерфейсов в Java, поэтому массивы и дженерики не идут рука об руку, что делает невозможным создание Generic Array по одной основной причине, что массивы являются ковариантными, а generics - инвариантными. Хотя Array представляет собой структуру данных фиксированной длины, она содержит объекты того же класса или примитивы конкретного типа данных. Поэтому, если вы пытаетесь сохранить другой тип данных, отличный от указанного при создании объекта Array, он просто бросает «ArrayStoreException». ArrayList, с другой стороны, поддерживает Generics для обеспечения безопасности типов.

  1. Примитивы

В ArrayList не допускаются примитивные типы данных, такие как int, double, long и char. Это скорее содержит объекты, а примитивы не считаются объектами в Java. С другой стороны, массивы могут содержать примитивы, а также объекты на Java, потому что это одна из наиболее эффективных структур данных в Java для хранения объектов. Это агрегированный тип данных, предназначенный для хранения объектов, которые могут быть одного или того же или другого типа.

  1. длина

Чтобы получить длину массива, код должен получить доступ к атрибуту length, потому что нужно знать длину для выполнения операций над Array. В то время как ArrayList использует метод size () для определения размера ArrayList, он существенно отличается от определения длины массива. Атрибут метода size () определяет количество элементов в ArrayList, которое, в свою очередь, является способностью ArrayList.

Например:

открытый класс ArrayLengthTest {

public static void main (String [] args) {

ArrayList arrList = новый ArrayList();

String [] items = {«Один», «Два», «Три»};

for (String str: items) {

arrList.add (ул);

}

int size = items.size ();

System.out.println (размер);

}

}

  1. Реализация

Массив - это собственный компонент программирования на Java, который создается динамически, и они используют оператор присваивания для хранения элементов, а ArrayList используют атрибут add () для вставки элементов. ArrayList - это класс из коллекции в Java, который использует набор определенных методов для доступа и изменения элементов. Размер ArrayList может быть увеличен или уменьшен динамически. Элементы в массиве хранятся в смежной ячейке памяти, и ее размер остается неизменным.

  1. Спектакль

В то время как обе структуры данных обеспечивают аналогичную производительность, поскольку ArrayList поддерживается массивами, у одного есть небольшое преимущество над другим, главным образом в плане использования времени процессора и памяти. Скажем, если вы знаете размер массива, вы, скорее всего, пойдете с ArrayList. Тем не менее, итерация по массиву немного быстрее, чем повторение по ArrayList. Если программа включает в себя большое количество примитивов, массив будет работать значительно лучше, чем ArrayList, с точки зрения времени и памяти. Массивы - это низкоуровневый язык программирования, который может использоваться в реализациях коллекции. Однако производительность может варьироваться в зависимости от выполняемой вами операции.

Массив Vs. Список_массивов

массив ArrayList
Массив - это структура данных фиксированной длины, длина которой не может быть изменена после создания объекта массива. ArrayList является динамическим по своей природе, что означает, что он может изменять размеры, чтобы расти, когда это необходимо.
Размер массива остается неизменным во всей программе. Размер ArrayList может динамически увеличиваться в зависимости от нагрузки и емкости.
Он использует оператор присваивания для хранения элементов. Он использует атрибут add () для вставки элементов.
Он может содержать примитивы, а также объекты того же или другого типа данных. В ArrayList не допускаются примитивы. Он может содержать только типы объектов.
Массивы и дженерики не идут рука об руку. Дженерики разрешены в ArrayList.
Массивы могут быть многомерными. ArrayList является одномерным.
Это встроенный компонент программирования, в котором элементы хранятся в смежных ячейках памяти. Это класс из рамки коллекций Java, где объекты никогда не хранятся в смежных местах.
Длина переменной используется для определения длины массива. Метод size () используется для определения размера массива ArrayList.
Занимает меньше памяти, чем ArrayList, для хранения определенных элементов или объектов. Занимает больше памяти, чем массив для хранения объектов.
Итерация по массиву выполняется быстрее, чем повторение по ArrayList. Итерация по ArrayList значительно медленнее с точки зрения производительности.

Резюме

Хотя некоторые могут подумать, что реализация массивов в программе может получить результаты быстрее, чем делать то же самое с ArrayLists по той простой причине, что массивы представляют собой низкоуровневую структуру данных, производительность может варьироваться в зависимости от того, какую операцию вы выполняете. Ну, длина массива фиксирована, тогда как размер ArrayList может быть увеличен или уменьшен динамически, поэтому ArrayList имеет небольшое преимущество над массивом с точки зрения функциональности. Однако, несмотря на различия, они также имеют некоторые сходства. Оба являются структурами данных на основе индексов на Java, которые позволяют хранить объекты, и оба они допускают нулевые значения, а также дубликаты. Ну, если вы заранее знаете размер объектов, вы должны пойти с массивом, и если вы не уверены в размере, перейдите к ArrayList.