Arrays e Collections em Java: guia completo para iniciantes — parte 1
Estudar Java é impossível sem entender como armazenar e gerenciar grupos de dados. Neste artigo, vamos abordar dois tópicos fundamentais: arrays e collections. Esta é a primeira parte de um guia completo, adequada para aprendizado do zero e que ajudará a sistematizar conhecimentos de programação em Java.
O que são arrays em Java?
Um array é uma estrutura de dados de comprimento fixo que armazena elementos de um mesmo tipo. Arrays são a base do Java para iniciantes, pois são simples e rápidos. No entanto, sua principal desvantagem é que o tamanho não pode ser alterado após a criação.
Declaração e inicialização de arrays
Em Java, um array é declarado usando colchetes. Aqui está a sintaxe básica:
int[] numbers = new int[5]; // array de 5 números inteirosString[] names = {"Ana", "Boris", "Viktor"}; // inicialização literalAcesso aos elementos e comprimento do array
A indexação começa em 0. O comprimento do array é armazenado na propriedade length:
int first = numbers[0];int size = numbers.length; // 5Loops para trabalhar com arrays
Para percorrer os elementos, é conveniente usar for ou for-each:
for (int i = 0; i < numbers.length; i++) { System.out.println(numbers[i]);}
for (int num : numbers) { System.out.println(num);}Arrays multidimensionais
Java suporta arrays de arrays. Por exemplo, um array bidimensional é uma tabela:
int[][] matrix = new int[3][4]; // 3 linhas, 4 colunasmatrix[1][2] = 42;Arrays multidimensionais são úteis para matrizes, campos de jogos e imagens.
Collections em Java: alternativa flexível
Collections são estruturas de dados dinâmicas do Java Collections Framework (JCF). Elas resolvem o principal problema dos arrays: expandem e contraem automaticamente. Para programação em Java, collections são indispensáveis.
Principais interfaces de collections
- List — lista ordenada com duplicatas (ArrayList, LinkedList).
- Set — conjunto sem duplicatas (HashSet, TreeSet).
- Map — dicionário: chave → valor (HashMap, TreeMap).
ArrayList: array dinâmico
O tipo de collection mais popular. Exemplo de uso:
import java.util.ArrayList;
ArrayList<String> list = new ArrayList<>();list.add("Java");list.add("Python");list.add("C++");System.out.println(list.get(0)); // JavaSystem.out.println(list.size()); // 3HashSet: elementos únicos
Use Set quando precisar excluir duplicatas:
import java.util.HashSet;
HashSet<Integer> set = new HashSet<>();set.add(10);set.add(20);set.add(10); // não será adicionadoSystem.out.println(set.size()); // 2HashMap: pares chave-valor
Ideal para busca rápida:
import java.util.HashMap;
HashMap<String, Integer> map = new HashMap<>();map.put("Alice", 25);map.put("Bob", 30);System.out.println(map.get("Alice")); // 25Quando usar arrays e quando usar collections?
A escolha depende da tarefa:
- Arrays — se o tamanho for fixo, precisar de máxima performance ou estiver trabalhando com tipos primitivos.
- Collections — se os dados mudam dinamicamente, precisar de unicidade, ordenação ou busca por chave.
Para aprendizado de Java, recomenda-se começar com arrays e depois passar para collections.
Exemplo: combinando arrays e collections
Vamos considerar uma tarefa: converter um array em uma lista e vice-versa