Программирование • 08 июля 2025 • 5 мин чтения

Массивы в программировании: описание и наполнение данными

Разбираемся на простых примерах, что такое массивы, зачем их использовать и какие операции с ними можно совершать.

Что такое массив в программировании

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

В виде массивов можно представить разные вещи из окружающего нас мира: например, разложенную по одинаковым контейнерам и выстроенную стройными рядами черешню на лотке у уличного продавца или список учеников в классном журнале.

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

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

Выделяют три важные особенности массивов:

1. Они всегда состоят из одинаковых элементов. Этим массивы отличаются от других структур данных. Элементами конкретного массива могут стать числа, строки или даже другие массивы.

2. К любому элементу массива можно обратиться по его номеру, также его называют индексом. По индексу программист может быстро найти нужный элемент. Обычно индексация массивов начинается с 0. Предположим, что у нас есть массив с тремя элементами, — они будут иметь индексы 0, 1 и 2.

3. Длина массива задаётся в момент его создания.

Пример простого массива в JavaScript:
let numbers = [1, 2, 3, 4, 5];

Массив numbers содержит пять целых чисел. По индексу numbers[0] доступно значение 1, numbers[1] будет равно 2, и т. д.

Пётр Кушнир, Яндекс Практикум, автор курса «Java-разработчик»

Если нам нужны одновременно число и строка, например имя, фамилия и возраст, то в этом случае массив уже не подойдёт. Важно помнить, что массив может содержать только одинаковые по типу данные. Они могут иметь разное значение, но только один тип — например, числа или фамилии.

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

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

Как создать массив и наполнить его данными

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

Длина массивов задаётся заранее: создать можно только массив с конкретной длиной. Программист или задаёт эту длину в переменной, или создаёт её через конструкцию типа new. С этого момента массив сразу готов к работе, можно записывать в любую ячейку нужные значения.

Приведём простые примеры создания массивов в разных языках.

Как видим, в разных языках синтаксис может варьироваться, но логика остаётся единой.

Чтобы записать массив, нужно по конкретному индексу обратиться к ячейке и присвоить ей значение. Таким образом, наполнение массива данными заключается в том, что программист перебирает все ячейки и в каждую записывает нужное значение. Также можно скопировать данные из одного массива в другой — это тоже будет операцией наполнения данными, только произведённой не вручную, а с помощью особой функции.

Приведём простые примеры наполнения массивов данными в разных языках.

Основные операции с массивами

Сначала рассмотрим операции с массивами как с переменными:

Создание. Рассмотрели этот процесс выше.
Копирование. Используем […arr] в JavaScript, arr.copy () в Python.
Удаление. Массив занимает место в памяти, и периодически его нужно очищать. В одних языках, например в Java, неиспользуемые массивы автоматически удаляет сборщик мусора. В других это приходится делать вручную.

Например, в Python используют метод pop () для удаления массива по индексу и remove () для удаления по значению. С помощью оператора del можно очистить весь массив.

Пётр Кушнир

Интересный факт: мы можем присвоить переменной ссылку на один массив, потом скопировать эту ссылку в другую переменную, а массив в памяти останется тот же самый.

Если рассматривать массив как структуру данных, с содержимым массива возможны следующие операции:

Чтение — прочитать одну ячейку или блок ячеек.
Запись — записать данные в одну ячейку или в несколько ячеек по диапазону.
Изменение размера — можно добавлять ячейки в начало, конец и в середину массива или, наоборот, удалять их.

Пётр Кушнир

В некоторых языках изменить размер массива получится только путём копирования. Например, в Python можем разрезать массив, поставить в середину ещё одну ячейку и таким образом увеличить длину массива. Сделать так же в Java не получится: придётся копировать в новый массив первую половину, потом отступить одну ячейку и скопировать в новый массив вторую половину старого массива. Просто увеличить размер исходного массива нельзя, всегда приходится создавать новый массив и уже его модифицировать.

Особенности работы с массивами

При работе с массивами важно учитывать следующие особенности:

● Индексация в большинстве языков начинается с 0 и увеличивается. Но в Python можно использовать отрицательные индексы, отсчитывая элементы с конца массива.

● Работа с массивами подразумевает высокую скорость и производительность. Это хорошая структура для высокопроизводительных, высоконагруженных алгоритмов. Это достигается за счёт того, что многие операции над массивами выполняются с помощью арифметики индексов и отрезков, а значит, очень быстро.

● Нужно помнить, что любое изменение размера массива — это довольно тяжёлая операция, которой стоит избегать. Даже если язык позволяет изменить массив, это подразумевает копирование, вставку и разрезание массива пополам. Сложность в том, что хорошо сделанные массивы на низком уровне занимают непрерывную часть памяти. Сразу после массива идут какие-то другие данные, перед ним тоже идут другие данные. Поэтому, чтобы увеличить размер, нужно стараться найти другую область памяти подходящего размера, а это может занять много времени.

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

Пётр Кушнир

Модификация массива именно с точки зрения размера — это довольно тяжёлая операция. Поэтому обычно применяют такой подход: выделяют несколько одинаковых кусков массива, например по 64 штучки. Если программисту нужен массив на 100 элементов, он берет два по 64. В итоге у него остаётся запас свободных элементов, которые можно увеличивать или перераспределять. Но при этом сами массивы остаются неизменными, поэтому операции происходят очень быстро.

В идеальном мире программисту не нужно модифицировать массивы, тогда весь алгоритм будет выполняться наиболее эффективно.

Совет эксперта

Пётр Кушнир

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

Даже в высокоуровневых языках, таких как JavaScript или Python, не нужно часто модифицировать массивы. Если нужен массив изменяемого размера, то лучше использовать специальную библиотеку, которая разобьёт этот массив на кусочки и будет предоставлять доступ к различным отрезкам, не меняя их. Это будет значительно выгоднее с точки зрения производительности. Такие вспомогательные структуры называются «коллекциями» или «списками».

В целом с массивами в основном работают с помощью индексов, изменяемых в цикле, поэтому советую почитать про циклы и попрактиковаться в базовых вещах, чтобы понять, как адресация внутри массивов работает, как перемещаться внутри массивов и как перемещать данные внутри массивов и между ними.

Статью подготовили:
Пётр Кушнир
Яндекс Практикум
Автор курса «Java-разработчик»
Мария Вихрева
Яндекс Практикум
Редактор
Анастасия Павлова
Яндекс Практикум
Иллюстратор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться
Готовы ли вы к учебному году? Пройдите тест и получите скидку на курсы до 31 августа.
Tue Jul 08 2025 13:28:32 GMT+0300 (Moscow Standard Time)