Bu programda, dizicopy kullanarak ve onsuz Java'daki iki diziyi birleştirmeyi öğreneceksiniz.
Bu örneği anlamak için, aşağıdaki Java programlama konuları hakkında bilgi sahibi olmalısınız:
- Java Dizileri
- Her Döngü için Java
Örnek 1: arraycopy kullanarak İki Diziyi Birleştirme
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)); ) )
Çıktı
(1, 2, 3, 4, 5, 6)
Yukarıdaki programda, dizi1 ve dizi2 olmak üzere iki tamsayı dizimiz var.
İki diziyi birleştirmek (birleştirmek) için, uzunluğunun sırasıyla aLen ve bLen'de saklandığını buluruz. Ardından, aLen + bLen uzunluğuna sahip yeni bir tamsayı dizisi sonucu oluşturuyoruz.
Şimdi, ikisini birleştirmek için, her iki dizideki her bir elemanı arraycopy()
fonksiyon kullanarak sonuç verecek şekilde kopyalıyoruz .
arraycopy(array1, 0, result, 0, aLen)
Fonksiyonu, basit terimlerle, dizinden başlayarak dizi1 kopyalamak için programı söyler 0
dizinden sonuçlanması 0
Alen için.
Aynı şekilde, için arraycopy(array2, 0, result, aLen, bLen)
dizinden başlayarak dizi2 kopyalamak için programı söyler 0
için result
Blen için endeks Alen dan.
Örnek 2: Dizicopy kullanmadan İki Diziyi Birleştirme
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)); ) )
Çıktı
(1, 2, 3, 4, 5, 6)
Yukarıdaki programda, kullanmak yerine, arraycopy
sonuç için her iki dizi dizi1 ve dizi2'nin her bir öğesini manuel olarak kopyalıyoruz.
Sonuç için gerekli toplam uzunluğu saklarız, yani array1.length + array2. length
. Ardından, uzunluğun yeni bir dizi sonucunu oluşturuyoruz.
Şimdi, her dizi1 öğesini yinelemek ve sonuçta depolamak için her bir döngü için kullanıyoruz. Atadıktan sonra, pozisyonu 1 artırıyoruz pos++
.
Aynı şekilde, dizi2 için de aynısını yapıyoruz ve her bir elemanı dizi1'den sonraki konumdan başlayarak sonuçta saklarız.