Program w języku Java do łączenia dwóch tablic

W tym programie nauczysz się łączyć dwie tablice w Javie przy użyciu arraycopy i bez niej.

Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:

  • Tablice Java
  • Java dla każdej pętli

Przykład 1: łączenie dwóch tablic przy użyciu 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)); ) )

Wynik

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

W powyższym programie mamy dwie tablice liczb całkowitych tablica1 i tablica2.

Aby połączyć (konkatenować) dwie tablice, znajdujemy jej długość przechowywaną odpowiednio w aLen i bLen. Następnie tworzymy nową tablicę liczb całkowitych o długości aLen + bLen.

Teraz, aby połączyć oba, kopiujemy każdy element z obu tablic do wyniku za pomocą arraycopy()funkcji function.

arraycopy(array1, 0, result, 0, aLen)Funkcja, w prostych słowach, że program do kopiowania array1 począwszy od wskaźnika 0wynika z indeksu 0do Alen.

Podobnie, for arraycopy(array2, 0, result, aLen, bLen)mówi programowi, aby skopiował tablicę2 zaczynając od indeksu 0do resultz indeksu aLen do bLen.

Przykład 2: łączenie dwóch tablic bez użycia 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)); ) )

Wynik

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

W powyższym programie zamiast używać arraycopy, ręcznie kopiujemy każdy element obu tablic tablica1 i tablica2 do wyniku.

Przechowujemy całkowitą długość wymaganą do wyniku, tj array1.length + array2. length. Następnie tworzymy nową tablicę wynikową długości.

Teraz używamy pętli for-each do iteracji przez każdy element tablicy array1 i zapisujemy go w wyniku. Po przypisaniu go, możemy zwiększyć poz pozycji 1, pos++.

Podobnie robimy to samo dla array2 i przechowujemy każdy element w wyniku, zaczynając od pozycji po array1.

Interesujące artykuły...