Arrays e Listas: armazenar coleções de dados
Quando você precisa guardar não um, mas muitos valores, os arrays e listas são a solução. Eles organizam coleções de dados de forma eficiente e acessível.
Renato Freitas
Atualizado em 27 de abril de 2026
O que é um array?
Um array (vetor) é uma estrutura de dados que armazena vários valores do mesmo tipo em posições consecutivas na memória, identificadas por um índice numérico. Pense nele como uma fileira de caixas numeradas: cada caixa guarda um valor, e o número da caixa é o índice.
Em vez de criar dez variáveis separadas — nota1, nota2, nota3, … nota10 —, você cria um array notas com dez posições. Isso simplifica o código e permite processar todos os valores com um loop.
Arrays são a estrutura de dados mais fundamental da programação. Listas de contatos, tabelas de preços, sequências de pixels em uma imagem — tudo isso é representado internamente como arrays.
🧮 Teste você mesmo — CalcSim
Quer mais recursos? Baixar app CalcSim IA
Índices: começam em zero
A posição de cada elemento em um array é chamada de índice. Na grande maioria das linguagens de programação (C, Java, Python, JavaScript, Dart), o primeiro elemento tem índice 0, não 1. Então em um array notas com 5 elementos, os índices vão de 0 a 4.
Para acessar o primeiro elemento: notas[0]. Para o último em um array de tamanho n: notas[n - 1]. Tentar acessar notas[5] em um array de 5 elementos causará um erro de índice fora do limite (index out of bounds).
A convenção de começar em zero tem raiz histórica na aritmética de ponteiros em C, onde o índice representa o deslocamento em relação ao início do array na memória. Embora pareça contra-intuitivo no início, você se acostuma rapidamente.
- Primeiro elemento: array[0]
- Último elemento: array[tamanho - 1]
- Tamanho: número total de elementos (não o maior índice).
- Índice fora do limite: acessar uma posição que não existe causa erro em tempo de execução.
Operações básicas: acessar, inserir, remover e percorrer
Acessar um elemento pelo índice é instantâneo — independentemente do tamanho do array, acessar notas[3] leva o mesmo tempo. Isso se chama acesso em tempo constante e é uma das grandes vantagens dos arrays.
Inserir ou remover elementos no meio de um array é custoso: todos os elementos depois da posição afetada precisam ser deslocados. Por isso, inserções e remoções frequentes no meio de uma coleção são melhor atendidas por outras estruturas, como listas ligadas.
Percorrer todos os elementos — para somar, buscar, filtrar ou transformar — é feito com um loop. Exemplo em pseudocódigo: para cada i de 0 até tamanho - 1, imprimir notas[i]. Muitas linguagens oferecem também o for-each, que percorre os elementos diretamente sem precisar do índice: para cada nota em notas, imprimir nota.
- Acesso por índice: O(1) — instantâneo, independente do tamanho.
- Busca linear: O(n) — percorre elemento por elemento até encontrar.
- Inserção no final: rápida. Inserção no meio: lenta (desloca elementos).
- Remoção no final: rápida. Remoção no meio: lenta (desloca elementos).
Arrays multidimensionais: tabelas e matrizes
Um array pode ter mais de uma dimensão. Um array bidimensional é como uma tabela ou matriz: tem linhas e colunas. Você acessa um elemento com dois índices: tabela[linha][coluna].
Exemplo: uma grade de notas de 30 alunos em 4 matérias seria notas[30][4]. Para acessar a nota do terceiro aluno na segunda matéria: notas[2][1] (lembrando que os índices começam em zero).
Arrays multidimensionais são usados em processamento de imagens (pixels em linhas e colunas), planilhas, jogos de tabuleiro, redes neurais e simulações científicas. O conceito é o mesmo do array simples, aplicado em mais dimensões.
Array vs lista ligada: quando usar cada um
Um array armazena elementos em posições contíguas de memória. Uma lista ligada armazena cada elemento em um nó independente, e cada nó aponta para o próximo. São duas abordagens diferentes para guardar coleções.
Arrays têm acesso rápido por índice (O(1)), mas inserções e remoções no meio são lentas (O(n)) porque exigem deslocar elementos. Listas ligadas têm inserções e remoções rápidas em qualquer posição (O(1) se você já tem o nó), mas acessar o elemento de índice k exige percorrer k nós desde o início (O(n)).
Na prática, a maioria das linguagens modernas oferece listas dinâmicas que combinam o melhor dos dois mundos — como ArrayList em Java, List em Python e List em Dart. Essas estruturas usam arrays internamente mas redimensionam automaticamente quando necessário, abstraindo a complexidade.
- Array: acesso rápido por índice, tamanho fixo em linguagens de baixo nível.
- Lista ligada: inserção e remoção rápidas em qualquer posição, sem realocação.
- Lista dinâmica (ArrayList/List): array que cresce automaticamente. É o que você usa na maioria das situações.
- Escolha pela operação mais frequente: se acessa muito por índice, prefira array. Se insere e remove muito no meio, prefira lista ligada.
Perguntas frequentes
Por que os índices de arrays começam em 0 e não em 1?
A convenção vem da linguagem C, onde um array é essencialmente um ponteiro para o início da memória alocada e o índice representa o deslocamento em bytes a partir desse ponto. O primeiro elemento está no deslocamento 0. Linguagens posteriores mantiveram a convenção por compatibilidade e eficiência. Algumas linguagens (como Lua e MATLAB) começam em 1, mas são exceção.
Posso ter um array de tipos diferentes?
Depende da linguagem. Em linguagens estaticamente tipadas como Java e C, todos os elementos de um array devem ser do mesmo tipo. Em linguagens dinâmicas como Python e JavaScript, uma lista pode misturar inteiros, strings e objetos. Mesmo nessas linguagens, é boa prática manter elementos do mesmo tipo em uma lista para evitar erros lógicos difíceis de depurar.
Qual a diferença entre tamanho e capacidade de um array?
Tamanho (size/length) é o número de elementos atualmente armazenados no array. Capacidade (capacity) é o espaço total alocado na memória, que pode ser maior que o tamanho. Listas dinâmicas geralmente alocam mais memória do que o necessário para evitar realocações frequentes — quando o tamanho atinge a capacidade, a lista cria um novo espaço maior e copia tudo para lá.
Este artigo foi útil para você?
Avalie com estrelas para nos ajudar a melhorar o conteúdo.
Faça login para avaliar este artigo.
Ainda tem dúvida?
O Professor IA explica passo a passo
Faça uma pergunta em linguagem natural e receba uma explicação personalizada sobre Lógica de Programação — ou qualquer outro tópico.
Prefere resolver pelo celular?
Baixar o app grátis →Continue aprendendo