Header Ads Widget

Ticker

6/recent/ticker-posts

Programa Java para concatenar dos matrices

En este programa, aprenderá a concatenar dos matrices en Java usando arraycopy y sin ella.

Ejemplo 1: Concatenar dos matrices usando arraycopy

  1. import java.util.Arrays;
  2. public class Concat {
  3. public static void main(String[] args) {
  4. int[] array1 = {1, 2, 3};
  5. int[] array2 = {4, 5, 6};
  6. int aLen = array1.length;
  7. int bLen = array2.length;
  8. int[] result = new int[aLen + bLen];
  9. System.arraycopy(array1, 0, result, 0, aLen);
  10. System.arraycopy(array2, 0, result, aLen, bLen);
  11. System.out.println(Arrays.toString(result));
  12. }
  13. }
Cuando ejecutas el programa, la salida será:
[1, 2, 3, 4, 5, 6]
En el programa anterior, tenemos dos matrices enteras array1 y array2.
Para combinar (concatenar) dos matrices, encontramos su longitud almacenada en aLen y bLen respectivamente. Luego, creamos un nuevo resultado de matriz entera con longitud aLen + bLen.
Ahora, para combinarlos con ambos, copiamos cada elemento en ambas matrices para que resulten utilizando la función arraycopy ().
La arraycopy(array1, 0, result, 0, aLen)función, en términos simples, le dice al programa que copie la matriz1 comenzando desde el índice 0hasta el resultado del índice 0aLen .
Del mismo modo, for arraycopy(array2, 0, result, aLen, bLen)le dice al programa que copie array2 a partir de índice 0resultíndice aLen a bLen .

Ejemplo 2: Concatenar dos matrices sin usar arraycopy

  1. import java.util.Arrays;
  2. public class Concat {
  3. public static void main(String[] args) {
  4. int[] array1 = {1, 2, 3};
  5. int[] array2 = {4, 5, 6};
  6. int length = array1.length + array2.length;
  7. int[] result = new int[length];
  8. int pos = 0;
  9. for (int element : array1) {
  10. result[pos] = element;
  11. pos++;
  12. }
  13. for (int element : array2) {
  14. result[pos] = element;
  15. pos++;
  16. }
  17. System.out.println(Arrays.toString(result));
  18. }
  19. }
Cuando ejecutas el programa, la salida será:
[1, 2, 3, 4, 5, 6]
En el programa anterior, en lugar de usar arraycopy, copiamos manualmente cada elemento de ambas matrices array1 y array2 para obtener el resultado .
Almacenamos la longitud total requerida para el resultado , es decir array1.length + array2. lengthLuego, creamos un nuevo resultado de matriz de la longitud.
Ahora, usamos for-each loop para recorrer cada elemento de array1 y almacenarlo en el resultado . Después de asignarlo, aumentamos la posición pos por 1, pos++.
Del mismo modo, hacemos lo mismo para array2 y almacenamos cada elemento en el resultado comenzando desde la posición después de array1 .

Publicar un comentario

0 Comentarios