Разница между массивами и аррайлистами

Разница между массивами и аррайлистами
Разница между массивами и аррайлистами

Видео: Разница между массивами и аррайлистами

Видео: Разница между массивами и аррайлистами
Видео: Двумерные массивы в Си: обычные и динамические 2024, Апрель
Anonim

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

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

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

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

значения [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. Одним из важных свойств массива является то, что весь массив выделяется как единый блок памяти, и каждый элемент получает свое собственное пространство в массиве.. После определения массива его размер фиксируется. Поэтому, если вы не уверены в размере массива во время компиляции, вам нужно будет определить достаточно большой массив, чтобы быть в безопасности. Но в большинстве случаев мы на самом деле собираемся использовать меньше элементов, чем мы выделили. Таким образом, на самом деле тратится значительный объем памяти. С другой стороны, если «достаточно большой массив» на самом деле окажется недостаточно большим, программа выйдет из строя.

Что такое аррайлисты?

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

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

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

Рекомендуем: