Java-program för att sammanfoga två arrayer

I det här programmet lär du dig att sammanfoga två matriser i Java med hjälp av arraycopy och utan den.

För att förstå detta exempel bör du ha kunskap om följande Java-programmeringsämnen:

  • Java Arrays
  • Java för varje slinga

Exempel 1: Sammankoppla två matriser med hjälp av 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)); ) )

Produktion

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

I ovanstående program har vi två heltalmatriser array1 och array2.

För att kombinera (sammanfoga) två matriser hittar vi dess längd lagrad i aLen respektive bLen. Sedan skapar vi ett nytt heltal array-resultat med längden aLen + bLen.

Nu, för att kombinera båda, kopierar vi varje element i båda matriserna för att resultera med hjälp av arraycopy()funktionen.

Den arraycopy(array1, 0, result, 0, aLen)funktion, enkelt uttryckt, berättar programmet för att kopiera matris1 start från index 0bero på index 0till Alen.

På samma sätt arraycopy(array2, 0, result, aLen, bLen)berättar för programmet att kopiera array2 från index 0till resultfrån index aLen till bLen.

Exempel 2: Sammankoppla två matriser utan att använda arraykopia

 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)); ) )

Produktion

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

I det ovanstående programmet, istället för att använda arraycopy, kopierar vi manuellt varje element i båda matriserna array1 och array2 till resultat.

Vi lagrar den totala längden som krävs för resultat, det vill säga array1.length + array2. length. Sedan skapar vi ett nytt arrayresultat av längden.

Nu använder vi för varje slinga för att itera igenom varje element i array1 och lagra det i resultatet. Efter att tilldela det, vi ökar positions pos med 1, pos++.

På samma sätt gör vi detsamma för array2 och lagrar varje element i resultatet från position efter array1.

Intressanta artiklar...