English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا البرنامج، ستعلم كيفية ربط مجموعتين في Java باستخدام arraycopy وبدون استخدام 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)); } }
عند تشغيل البرنامج، الناتج هو:
[1, 2, 3, 4, 5, 6]
في البرنامج أعلاه، لدينا مجموعتين من البيانات array1 وarray2.
لربط (الدمج) مجموعتين من البيانات، نحفظ أطولها على التوالي في aLen وbLen. ثم، نخلق مجموعة جديدة من الأعداد الصحيحة طولاً aLen + bLen.
الآن، لجمعهما معًا، نستخدم دالة arraycopy() لنسخ كل عنصر من كلا المجموعتين إلى النتيجة.
يخبر البرنامج ببساطة arraycopy(array1, 0, result, 0, aLen) من索عة 0 إلى array1 من索عة 0 إلى aLen.
بالمثل، arraycopy(array2, 0, result, aLen, bLen) يخبر البرنامج ببدء نسخ array2 من索عة 0 إلى النتيجة، من索عة aLen إلى bLen.
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; لـ (int element : array1) { result[pos] = element; pos++; } لـ (int element : array2) { result[pos] = element; pos++; } System.out.println(Arrays.toString(result)); } }
عند تشغيل البرنامج، الناتج هو:
[1, 2, 3, 4, 5, 6]
في البرنامج أعلاه، لم نستخدم arraycopy، بل قمنا بنسخ كل عنصر من المصفوفة array1 والمصفوفة array2 يدويًا إلى result.
نخزن إجمالي عدد الإعداد المطلوبة لـ result، أي array1.length + array2.length. ثم، ننشئ مصفوفة جديدة طولها result.
الآن، نستخدم دائرة التكرار for-each لاستكشاف كل عنصر في array1 ونخزنه في result. بعد التخصيص، نزيد موقع pos بـ 1،pos ++.
نحن نقوم بالعمل نفسه على array2، ونبدأ من موقع array1 التالي لنخزن كل عنصر في result.