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

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

Видео: Разница между массивами и списками массивов

Видео: Разница между массивами и списками массивов
Видео: Топ вопросы на собеседовании по Алгоритмам: 2) Массив и список - что лучше? 2024, Июль
Anonim

Массивы и списки массивов

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

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

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

целые значения[5];

values[0]=100;

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

values[2]=102;

values[3]=103;

values[4]=104;

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

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

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

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

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

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

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

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

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