Разница между массивами и массивами

Массивы против Arraylists

Массивы - это наиболее часто используемая структура данных для хранения коллекции элементов. Большинство языков программирования предоставляют методы для простого объявления массивов и доступа к элементам в массивах. Массив можно рассматривать как динамический массив, который может увеличиваться в размере. По этой причине программисту не нужно знать размер массива при его определении.

Что такое массивы?

На рисунке 1 показан фрагмент кода, который обычно используется для объявления и присвоения значений массиву. На рисунке 2 показано, как массив будет выглядеть в памяти.

значения int [5];

значения [0] = 100;

значения [1] = 101;

значения [2] = 102;

значения [3] = 103;

значения [4] = 104;

Рисунок 1: Код для объявления и присвоения значений массиву


100 101 102 103 104
Индекс: 0 1 2 3 4

Рисунок 2: Массив хранится в памяти

Выше кода определяет массив, который может хранить 5 целых чисел, и доступ к ним осуществляется с помощью индексов от 0 до 4. Одним из важных свойств массива является то, что весь массив выделяется как один блок памяти, и каждый элемент получает свое собственное пространство в массиве. , Как только массив определен, его размер фиксирован. Поэтому, если вы не уверены в размере массива во время компиляции, вам придется определить достаточно большой массив, чтобы быть в безопасности. Но в большинстве случаев мы собираемся использовать меньшее количество элементов, чем мы выделили. Таким образом, значительный объем памяти фактически теряется. С другой стороны, если «достаточно большой массив» на самом деле недостаточно велик, программа завершится сбоем.

Что такое Arraylists?

Массив можно рассматривать как динамический массив, который может увеличиваться в размере. Поэтому arraylists идеальны для использования в ситуации, когда вы не знаете размер элементов, требуемых во время объявления. В Java массивы могут содержать только объекты, они не могут напрямую содержать примитивные типы (вы можете поместить примитивные типы в объект или использовать классы-обертки примитивных типов). Как правило, arraylists предоставляются методы для вставки, удаления и поиска. Временная сложность доступа к элементу составляет o (1), в то время как вставка и удаление имеют временную сложность o (n). В Java массивы могут быть просмотрены с помощью циклов foreach, итераторов или просто с помощью индексов.

В чем разница между массивами и массивами

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