Arrays e Listas
Arrays agrupam múltiplos valores sob um único nome, acessíveis por índice. Aprenda a criar, iterar e operar sobre arrays e listas com exemplos práticos.
Renato Freitas
Atualizado em 5 de maio de 2026
O que é um array
Imagine que você precisa armazenar as notas de 30 alunos. Com o que você sabe sobre variáveis, seria necessário criar nota1, nota2, nota3 ... nota30 — 30 variáveis separadas. Um array resolve isso: uma única variável 'notas' que pode guardar 30 valores, cada um acessível por uma posição numérica chamada índice.
Um array é uma coleção ordenada de elementos do mesmo tipo, armazenados em posições contíguas na memória. O índice é o endereço de cada elemento dentro do array. Em quase todas as linguagens de programação, os índices começam em zero — o primeiro elemento está na posição 0, o segundo na posição 1, e assim por diante.
Esse detalhe de começar em zero confunde muitos iniciantes. Se um array tem 5 elementos, os índices válidos são 0, 1, 2, 3 e 4. Tentar acessar o índice 5 gera um erro de 'índice fora dos limites' (index out of bounds) — um dos bugs mais comuns em programação.
🧮 Teste você mesmo — CalcSim
Quer mais recursos? Baixar app CalcSim IA
Criando e acessando elementos
Pseudocódigo para criar um array de inteiros com 5 posições: notas = [8, 7, 9, 6, 10]. Para acessar o terceiro elemento: notas[2] (lembre-se: índice 2 = terceira posição). Para modificar: notas[2] = 9.5.
Arrays também podem ser criados vazios com um tamanho definido e preenchidos depois. Isso é útil quando os valores só serão conhecidos durante a execução, como ao ler dados do usuário ou de um arquivo.
Para percorrer todos os elementos de um array, combine-o com um laço for: PARA i DE 0 ATÉ tamanho - 1 FAÇA processar notas[i]. O tamanho do array geralmente é acessível por uma propriedade como 'length' ou 'tamanho'.
Operações comuns em arrays
As operações mais frequentes são: calcular a soma, encontrar o máximo e o mínimo, contar elementos que satisfazem uma condição e buscar um elemento específico.
Para encontrar o maior valor: maximo = notas[0]; PARA i DE 1 ATÉ tamanho - 1 FAÇA SE (notas[i] > maximo) ENTÃO maximo = notas[i]. Começamos assumindo que o primeiro elemento é o maior e atualizamos sempre que encontramos um maior.
Para busca linear (verificar se um valor existe): PARA i DE 0 ATÉ tamanho - 1 FAÇA SE (notas[i] == valorBuscado) ENTÃO exibir 'Encontrado em ' + i E QUEBRAR. No pior caso, percorre todos os elementos. Para arrays ordenados, a busca binária é muito mais eficiente.
- Soma: iniciar soma em zero e somar cada elemento com um laço
- Máximo/mínimo: assumir o primeiro como referência e comparar os demais
- Busca linear: percorrer do início ao fim comparando cada elemento
- Contagem: incrementar um contador quando a condição for verdadeira
Array estático versus lista dinâmica
Arrays tradicionais têm tamanho fixo definido na criação. Se você cria um array para 10 elementos e precisar do 11°, terá um problema. Isso os torna eficientes em memória e acesso, mas rígidos em tamanho.
Listas dinâmicas (ArrayList em Java, list em Python, Array em JavaScript) crescem e encolhem automaticamente. Você pode adicionar e remover elementos a qualquer momento. Internamente, muitas implementações usam arrays que são realocados quando necessário.
A escolha entre array e lista dinâmica depende do caso: se o tamanho é fixo e conhecido, um array é mais eficiente. Se o tamanho varia, uma lista dinâmica é mais conveniente. Na prática, iniciantes costumam começar com listas dinâmicas por sua flexibilidade.
Arrays multidimensionais
Arrays podem ter mais de uma dimensão. Um array bidimensional é como uma tabela com linhas e colunas — pense em uma planilha ou no tabuleiro de um jogo. Para acessar um elemento: tabela[linha][coluna].
Exemplo: uma grade 3x3 para o jogo da velha. tabela[0][0] é o canto superior esquerdo; tabela[1][1] é o centro; tabela[2][2] é o canto inferior direito. Para percorrer toda a grade, você precisa de dois laços aninhados: um para as linhas, outro para as colunas dentro de cada linha.
Arrays tridimensionais e além existem mas são raramente usados diretamente. Quando você precisa de estruturas de dados complexas, geralmente há estruturas específicas (matrizes, tensores em bibliotecas como NumPy) que oferecem melhor suporte.
Perguntas frequentes
Por que arrays começam no índice 0 e não no 1?
Por razões históricas de eficiência de hardware. O índice representa o deslocamento em relação ao início do array na memória. O primeiro elemento está no deslocamento 0, o segundo no deslocamento 1 (ou 1 × tamanho_do_tipo). Linguagens como MATLAB e Lua usam índice 1, mas a maioria das linguagens modernas usa 0.
O que acontece se eu acessar um índice fora dos limites?
Depende da linguagem. Java e Python lançam uma exceção imediatamente com uma mensagem clara. C e C++ têm comportamento indefinido — podem acessar memória de outra variável, travar o programa ou parecer funcionar mas produzir resultados errados. É um bug sério em linguagens de baixo nível.
Como ordenar um array?
As linguagens modernas têm funções de ordenação nativas (sort() em Python, JavaScript e Java). Internamente, usam algoritmos como Quicksort ou Timsort. Para aprendizado, vale implementar manualmente Bubble Sort ou Insertion Sort para entender como a ordenação funciona em nível de comparações e trocas.
Qual a diferença entre array e string?
Uma string pode ser pensada como um array de caracteres. Em muitas linguagens, você pode acessar o i-ésimo caractere de uma string com a mesma notação de índice: nome[0] retorna o primeiro caractere. A diferença é que strings têm operações específicas para texto (busca de padrão, concatenação, divisão) que arrays genéricos não têm.
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