Programa Java para Concatenar Dois Arrays

Neste programa, você aprenderá a concatenar dois arrays em Java usando arraycopy e sem ele.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:

  • Arrays Java
  • Java para cada Loop

Exemplo 1: concatenar duas matrizes usando arraycopy

 import java.util.Arrays; public class Concat ( public static void main(String() args) ( int() array1 = (1, 2, 3); int() array2 = (4, 5, 6); int aLen = array1.length; int bLen = array2.length; int() result = new int(aLen + bLen); System.arraycopy(array1, 0, result, 0, aLen); System.arraycopy(array2, 0, result, aLen, bLen); System.out.println(Arrays.toString(result)); ) )

Resultado

 (1, 2, 3, 4, 5, 6)

No programa acima, temos duas matrizes de inteiros array1 e array2.

Para combinar (concatenar) dois arrays, encontramos seu comprimento armazenado em aLen e bLen, respectivamente. Em seguida, criamos um novo resultado de matriz de inteiros com comprimento aLen + bLen.

Agora, para combinar os dois, copiamos cada elemento em ambos os arrays para resultar usando a arraycopy()função.

A arraycopy(array1, 0, result, 0, aLen)função, em termos simples, diz ao programa para copiar array1 começando do índice 0para o resultado do índice 0para aLen.

Da mesma forma, for arraycopy(array2, 0, result, aLen, bLen)diz ao programa para copiar array2 começando do índice 0para o resultíndice aLen para bLen.

Exemplo 2: concatenar duas matrizes sem usar arraycopy

 import java.util.Arrays; public class Concat ( public static void main(String() args) ( int() array1 = (1, 2, 3); int() array2 = (4, 5, 6); int length = array1.length + array2.length; int() result = new int(length); int pos = 0; for (int element : array1) ( result(pos) = element; pos++; ) for (int element : array2) ( result(pos) = element; pos++; ) System.out.println(Arrays.toString(result)); ) )

Resultado

 (1, 2, 3, 4, 5, 6)

No programa acima, em vez de usar arraycopy, copiamos manualmente cada elemento de ambos os arrays array1 e array2 para o resultado.

Armazenamos o comprimento total necessário para o resultado, ou seja array1.length + array2. length. Em seguida, criamos um novo resultado de matriz do comprimento.

Agora, usamos o loop for-each para iterar através de cada elemento de array1 e armazená-lo no resultado. Depois de atribuí-lo, aumentamos a posição pos em 1 pos++,.

Da mesma forma, fazemos o mesmo para array2 e armazenamos cada elemento no resultado a partir da posição após array1.

Artigos interessantes...