Массив представляет собой упорядоченную структуру данных, состоящую из набора элементов (значений или переменных), каждый из которых идентифицируется одним или несколькими индексами. Когда вы спрашиваете о конкретных вариантах массивов, используйте эти связанные теги: [vector], [arraylist], [matrix]. При использовании этого тега в вопросе, который специфичен для языка программирования, - отметьте вопрос с использованием используемого языка программирования.

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

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

На некоторых языках (C, Java и т.д.) Длина массива должна быть задана заранее. На других языках (Ruby, Python, LISP, Haxe и т.д.) Длина массива растет динамически по мере добавления элементов.

При пометке вопроса с помощью этого тега также помещайте вопрос на используемый язык программирования.

Массив на определенных языках

  • С# массивы - это фактически объекты, а не только адресуемые области смежной памяти, как в C и C++. Массив - это абстрактный базовый тип всех типов массивов. Вы можете использовать свойства и другие члены класса, которые имеют Array.
  • C массивы действуют для хранения связанных данных под одним именем переменной с индексом, также называемым индексом. Они хранятся в строчном порядке, что означает, что последний индекс отличается самым быстрым. Легче всего рассматривать массив как просто список или упорядоченную группировку для переменных того же типа. Таким образом, массивы часто помогают программисту эффективно и интуитивно организовывать сбор данных.
  • C++ наследует необработанные массивы из C, а также добавляет собственный массив std::array array-класса для std::array компиляции, std::vector для массивов динамического размера времени исполнения. Он также имеет интеллектуальные реализации указателей, такие как std::unique_ptr, std::shared_ptr.
  • Объект C наследует необработанные массивы из C и добавляет собственный массив NSArray и NSMutableArray для динамических массивов.
  • Класс Ruby normal array называется array.
  • В Python нормальный тип данных массива называется list, тогда как тип array используется для однородных массивов.
  • В NumPy имеется мощный N-мерный массив со многими возможностями.
  • Массивы PHP реализуются как упорядоченные карты, которые могут содержать сочетание числовых или строковых ключей.
  • Массивы JavaScript - это просто объекты с другим прототипом (с дополнительными функциями, более полезными для массивно-подобных структур), с числовыми индексами, хранящимися в виде строк (все ключи JavaScript - это строки).
  • В Haxe Array имеет один параметр типа, который соответствует типу набора элементов. Массивы могут быть созданы с использованием их конструктора new Array() или [1, 2, 3], но также с использованием понимания Array: [for (i in 0...10) if (i % 2 == 0) i]. Для хранения фиксированного размера может использоваться абстрактный тип haxe.ds.Vector, который может быть быстрее, чем Array, на некоторых объектах и никогда не замедляется.
  • В Scala нормальный класс массива называется Array. Чтобы получить элемент из массива, вы не используете квадратные скобки, как на большинстве других языков, а в скобках.
  • В Java массив представляет собой объект-контейнер, который содержит фиксированное число значений одного типа. Длина массива устанавливается при создании массива. После создания его длина фиксирована.
  • В Perl переменные массива обозначаются префиксом @, а массивы объявляются круглыми скобками. Замена префикса на $# возвращает последний индекс.
  • В Rust массивы представляют собой группы данных одного и того же типа, смежные по памяти, поэтому их можно использовать при общении с C. Длина массива фиксирована.

Характеристики

Элементы массива обычно задаются с помощью 0-первого индекса, например, myarray[0] будет представлять первый элемент myarray. myarray[l] (где l - длина массива минус 1) будет представлять последний элемент в массиве. Однако некоторые языки, такие как старый Fortran и Lua, используют 1 в качестве начального индекса.

Некоторые языки (C++, Java, С#) имеют "базовые массивы" и коллекции. Базовые массивы напрямую поддерживаются компилятором, имеют фиксированный размер и обеспечивают доступ только по индексу. Коллекции, такие как Java ArrayList, представляют собой классы системной библиотеки, реализованные в верхней части этих базовых массивов и имеющие широкий спектр различных методов. В таких случаях тег следует использовать для обозначения простых массивов.

Массивы могут быть статически распределены или распределены динамически. Способ доступа к массиву и его типу зависит от того, как он объявлен и распределен.

Массивы могут содержать несколько индексов. Например, массив с одним индексом (например, array[0]) известен как одномерный массив. Если он имеет два индекса (например, array[0][0]), он считается двумерным и может быть визуализирован как сетка. Многомерные массивы, или, другими словами, массивы с несколькими индексами называются матрицами или матрицей в единственном числе.

Рекомендации

Связанные теги

Если говорить о конкретных вариантах массивов, используйте эти связанные теги: