# Arranjo (computação)

Em programação de computadores, um arranjo (em inglês array) é uma estrutura de dados que armazena uma coleção de elementos de tal forma que cada um dos elementos possa ser identificado por, pelo menos, um índice ou uma chave. Essa estrutura de dados também é conhecida como variável indexada, vetor (para arranjos unidimensionais) e matriz (para arranjos bidimensionais). Os arranjos mantêm uma série de elementos de dados, geralmente do mesmo tamanho e tipo de dados. Elementos individuais são acessados por sua posição no arranjo. A posição é dada por um índice, também chamado de subscrição. O índice geralmente utiliza uma sequência de números inteiros, mas o índice pode ter qualquer valor ordinal. Os arranjos podem ser multidimensionais, significando que eles são indexados por um número fixo de números inteiros, por exemplo, por uma sequência (ou sucessão) finita de quatro números inteiros. Geralmente, arranjos unidimensionais e bidimensionais são os mais comuns.
Os arranjos podem ser considerados como as estruturas de dados mais simples. Têm a vantagem de que os seus elementos são acessíveis de forma rápida mas têm uma notável limitação: são de tamanho fixo, mas podem ser incrementados ou diminuídos com determinados algoritmos, geralmente envolvendo a cópia de elementos de um arranjo para outro e reiniciar o original com a nova dimensão. Os vetores podem ser implementados desta forma.
Estas estruturas de dados são ajeitadas nas situações em que o acesso aos dados seja realizado de forma aleatória e imprevisível. Porém, se os elementos podem estar ordenados e vai-se empregar um acesso sequencial, seria mais recomendada uma lista.

## Forma de acesso

A forma de acessar os elementos de um arranjo é direta, ao contrário das listas. Isto quer dizer que o elemento desejado obtêm-se a partir do seu índice e não é preciso procurá-lo elemento por elemento. No caso das listas, por exemplo, para alcançar o terceiro elemento ter-se-á de aceder primeiro aos dois anteriores (ou bem de guardar um ponteiro que permita aceder de maneira rápida a esse elemento em particular).

## Exemplos
### Declarações

Em Java, os arranjos são objetos que necessitam de iniciação. Isto geralmente é feito usando o operador new. Para um arranjo, o programador especifica o tipo dos elementos do arranjo e o número de elementos como parte da operação new (instanciação do objeto). Ex.: int A = new int[5], onde teremos a instanciação do objeto int.
Em C, os arranjos são declarados, definindo primeiro o seu tipo, em seguida do seu nome e por fim a sua dimensão. Ex.: int array[10];.

### Inicialização

Automaticamente o Java inicializa com um valor default cada elemento do arranjo:
* Null para tipo Objetos;
* 0 (zero) para short, byte, int, long, float e double;
* Unicode 0 para char;
* False para boolean;
Em C, os arranjos quando iniciados no momento da declaração são definidos do seguinte modo:
Obs:. Em C# a criação de um arranjo é igual a em Java.

### Criando, inicializando, e acessando um Arranjo

Uma das formas de se criar um arranjo é utilizando o operador new. A declaração seguinte no programa ArrayDemo, aloca um arranjo com memória para dez elementos do tipo inteiro e atribui o arranjo à variável meuArray.
Alternativamente, você pode usar atalhos de sintaxe para criar e inicializar um arranjo:
Na linguagem de programação Java, um arranjo multidimensional é simplesmente um arranjo cujos elementos são outros arranjos. Um exemplo de arranjo multidimensional seria:
A saída desse programa é:
Arranjo de 10 elementos
Cada item em um arranjo é chamado de elemento, e cada elemento é acessado pela posição numérica. Como na ilustração acima as posições são numeradas a partir do 0 (zero). O 9º elemento, por exemplo, é acessado na posição 8.