Como unir dois arrays em Java: 5 maneiras + exemplos de código

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

“Unindo” arrays em Java: 5 maneiras comprovadas (com código)

Olá, colega! Se você está lendo este texto, significa que se deparou com uma tarefa que mais cedo ou mais tarde surge para todo desenvolvedor Java — como unir dois arrays em Java? Parece simples, não é? Pegar e somar. Mas não é bem assim. Em Java, não há um operador nativo para concatenação de arrays (como em Python ou JavaScript). E é aí que a coisa fica interessante.

No Stack Overflow, a pergunta “How can I concatenate two arrays in Java?” acumulou centenas de milhares de visualizações. Isso significa que até mesmo desenvolvedores experientes às vezes ficam em dúvida na escolha. Neste tutorial, vou mostrar 5 maneiras funcionais — desde a cópia manual “antiga” até a moderna Stream API. Você conhecerá os prós e contras de cada abordagem e poderá escolher a que melhor se adapta à sua tarefa.

Vamos nessa!



Por que não há uma maneira simples de unir arrays em Java?

Um array em Java é um objeto de tamanho fixo. Você não pode simplesmente “adicionar” um array ao final de outro. É necessário criar um novo array e copiar os elementos para ele. Mas não se preocupe — vou mostrar como fazer isso de forma elegante e sem dor.



Maneira 1: Cópia manual (para quem gosta de controlar tudo)

O método mais óbvio e direto. Criamos um novo array, cujo comprimento é a soma dos comprimentos dos dois originais, e o preenchemos em um loop.

public class ArrayConcatManual {    public static void main(String[] args) {        int[] array1 = {1, 2, 3};        int[] array2 = {4, 5, 6};

int[] result = new int[array1.length + array2.length];

// Copia o primeiro array for (int i = 0; i < array1.length; i++) { result[i] = array1[i]; }

// Copia o segundo array for (int i = 0; i < array2.length; i++) { result[array1.length + i] = array2[i]; }

// Exibe o resultado for (int num : result) { System.out.print(num + " "); } // Saída: 1 2 3 4 5 6 }}

Prós: controle total, não requer bibliotecas externas, fácil de ler.

Contras: verboso, fácil errar nos índices (especialmente se houver mais de dois arrays).

Dica: Use este método se quiser entender como tudo funciona “por baixo dos panos” ou se estiver escrevendo código para fins educacionais.



Maneira 2: System.arraycopy() — ferramenta padrão

Em Java, existe o método embutido System.arraycopy(). Ele é mais rápido que o loop manual, pois usa código nativo (native method). Esta é a maneira recomendada para produção.

import java.util.Arrays;

public class ArrayConcatSystem { public static void main(String[] args) { String[] fruits1 = {"apple", "banana"}; String[] fruits2 = {"cherry", "date"};

String[] result = new String[fruits1.length + fruits2.length];

System.arraycopy(fruits1, 0, result, 0, fruits1.length); System.arraycopy(fruits2, 0, result, fruits1.length, fruits2.length);

System.out.println(Arrays.toString(result)); // Saída: [apple, banana, cherry, date] }}

Como funciona:

  • Primeiro argumento — array de origem.
  • Segundo — posição inicial no array de origem (geralmente 0).
  • Terceiro — array de destino.
  • Quarto — posição inicial no array de destino.
  • Quinto — número de elementos a copiar.

Prós: rápido, compacto, biblioteca padrão.

Contras: é necessário cuidar dos índices, pode lançar ArrayIndexOutOfBoundsException.



Maneira 3: ArrayList e coleções — flexibilidade e conveniência

Se você precisa não apenas unir arrays, mas também trabalhar com eles depois (adicionar, remover

Blogs

Book Recommendations