English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمات Java الأساسية

تحكم العملية في Java

Java المصفوفات

Java متجه الموجه(I)

Java موجه بالأوبجكت (II)

Java موجه بالأوبجكت (III)

معالجة الاستثناءات في Java

قوائم Java List

مجموعات Java Queue (الصف)

مجموعات Java Map

مجموعات Java Set

مدخلات/مخرجات Java (I/O)

قراءات/كتابات Java

مواضيع أخرى في Java

برنامج Java لربط مجموعتين من البيانات

جميع الأمثلة Java

في هذا البرنامج، ستعلم كيفية ربط مجموعتين في Java باستخدام arraycopy وبدون استخدام arraycopy.

مثال 1: ربط مجموعتين باستخدام 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.

مثال 2: ربط مجموعتين من البيانات دون استخدام 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;
        لـ (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.

جميع الأمثلة Java