Что такое динамический массив в Java?



Динамический массив в Java - это тип массива с огромным улучшением автоматического изменения размера. Единственное ограничение массивов - это фиксированный размер.

Массивы в представляют собой однородные структуры данных, реализованные в Java как объекты. Массивы хранят одно или несколько значений определенного типа данных и предоставляют индексированный доступ для их хранения. Доступ к определенному элементу в массиве осуществляется по его индексу. В этой статье мы обсудим динамический массив в Java в следующей последовательности:

Введение в динамический массив в Java

Динамический массив - это такой тип массива с огромным улучшением автоматического изменения размера. Единственное ограничение массивов - это фиксированный размер. Это означает, что вы можете заранее указать только количество элементов, которые может содержать ваш массив. С другой стороны, динамические массивы могут расширяться по мере добавления дополнительных элементов в режиме реального времени. Следовательно, кодеру не нужно заранее определять размер массива. У него есть еще несколько сильных сторон:





  • Быстрый поиск . Как и в случае с массивами, при извлечении элемента по заданному индексу требуется время O (1).



  • Переменный размер . Мы можем вставить столько элементов, сколько захотим, и динамический массив будет соответственно расширяться, чтобы содержать их.

  • Дружественный к кешу . Подобно массивам, динамические массивы могут размещать элементы в памяти рядом друг с другом, что обеспечивает эффективное использование кешей.



У использования динамических массивов в нашем коде есть некоторые недостатки. Хотя мы используем динамические массивы чаще, чем что-либо еще в большинстве приложений, в некоторых случаях они не становятся наиболее предпочтительным выбором из-за своих ограничений.

как использовать метод обрезки в Java
  • Медленное добавление в худшем случае . Обычно при добавлении нового элемента в конец динамического массива за один раз требуется O (1). Однако, если в динамическом массиве больше нет индексов для нового элемента, его нужно будет расширить, что займет O (n) за раз.

  • Дорогостоящие вставки и удаления. Как и в случае с массивами, элементы хранятся рядом друг с другом. Таким образом, при добавлении или удалении элемента в центре массива требуется толкать другие элементы, что занимает O (n) за раз.

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

преобразовать десятичное число в двоичный Python

array - динамический массив в java - edureka

Размер против емкости

Когда мы инициализируем динамический массив, реализация динамического массива создает понятный массив фиксированного размера. Исходный размер соответствует реализации. Например, давайте заставим наш массив реализации использовать 10 индексов. Теперь мы добавляем четыре элемента в наш динамический массив. Теперь наш динамический массив имеет длину четыре. Однако наш базовый массив имеет длину 10. Следовательно, мы можем сказать, что размер динамического массива равен четырем, а его емкость - 10. Динамический массив хранит определенный конечный индекс, чтобы отслеживать конечную точку динамического массива и начальную точку. точка, с которой начинается дополнительная емкость.

Удвоение добавлений

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

Удаление элемента

При удалении элемента из массива метод «remove ()» по умолчанию удаляет элемент с конца и автоматически сохраняет ноль в последнем индексе. Он также удалит элементы по определенному индексу, вызвав метод removeAt (i), где «I» - это индекс. Метод removeAt (i) сдвигает все правые элементы в левой части от данного индекса.

как создавать динамические веб-страницы

Изменение размера массива

Когда массивы не имеют данных в правой части массива, которые занимают ненужную память, метод srinkSize () освобождает дополнительную память. Когда все слоты заняты и добавлены дополнительные элементы, базовый массив фиксированного размера должен увеличиться. Фактическое изменение размера является дорогостоящим, поскольку мы должны выделить больший массив и скопировать все элементы из массива, который вы переросли, прежде чем он наконец сможет добавить новый элемент.

Ниже приведен пример программы, в которой размер массива становится полным, а новые элементы копируются в новый массив двойного размера. Элемент, который является строковым элементом под названием «Махавир», является дополнением к уже полному массиву размера 3.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner public class AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Введите размер массива :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Введите элементы массива (Strings) :: ') for (int я = 0 я

Вывод:

На этом мы подошли к концу статьи «Динамический массив в Java». Надеюсь, вы получили представление о том, как работать с динамическими массивами.

Проверьте от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс обучения и сертификации по Java J2EE и SOA от Edureka предназначен для студентов и профессионалов, которые хотят стать Java-разработчиками. Курс разработан, чтобы дать вам хорошее начало в программировании на Java и обучить вас как основным, так и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, упомяните об этом в разделе комментариев этого блога «Динамический массив в Java», и мы свяжемся с вами как можно скорее.