Java/Estruturas de Dados/Vetores []
Java⏱ ~2 min de leitura

Vetores []

Arrays e manipulação de índices

Arrays são estruturas de tamanho fixo que armazenam elementos do mesmo tipo em posições contíguas de memória. O acesso por índice é O(1) — extremamente rápido, pois calcula diretamente o endereço de memória. O índice começa em 0, então um array de 5 elementos usa índices de 0 a 4.

Arrays são criados com new Tipo[tamanho] ou com inicialização direta usando chaves. O campo .length retorna o tamanho. Tentar acessar um índice inválido lança ArrayIndexOutOfBoundsException em tempo de execução. Para arrays multidimensionais, usa-se int[][] — uma matriz é basicamente um array de arrays.

A classe utilitária Arrays (java.util.Arrays) oferece: sort() para ordenar, binarySearch() para busca eficiente em arrays ordenados, copyOf() para copiar, fill() para preencher, e toString() para imprimir o conteúdo.

Exemplo.java
import java.util.Arrays;

// ── Declaração e inicialização ────────────────────
int[] notas = new int[5];         // [0, 0, 0, 0, 0]
notas[0] = 85; notas[1] = 92; notas[2] = 78;

// Inicialização direta
String[] frutas = {"Maçã", "Banana", "Laranja"};
double[] pesos = {1.5, 2.3, 0.8};

// ── Percorrendo ───────────────────────────────────
for (int i = 0; i < frutas.length; i++) {
    System.out.println(i + ": " + frutas[i]);
}
// For-each: mais legível quando não precisa do índice
for (String fruta : frutas) System.out.println(fruta);

// ── Utilitários da classe Arrays ─────────────────
Arrays.sort(notas);                       // ordena in-place
System.out.println(Arrays.toString(notas)); // [0, 0, 78, 85, 92]

int idx = Arrays.binarySearch(notas, 85);  // 3 (requer array ordenado)

// ── Matriz 2D ────────────────────────────────────
int[][] matriz = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};
System.out.println(matriz[1][2]); // 6  (linha 1, coluna 2)
System.out.println(matriz.length);    // 3 (linhas)
System.out.println(matriz[0].length); // 3 (colunas)
💡 Dica pro

Arrays têm tamanho fixo. Use ArrayList quando precisar de tamanho dinâmico. Use arrays primitivos (int[], double[]) quando performance é crítica — evitam o overhead de boxing/unboxing.

Recompensa+25 XP+exercícios