Java - ربط صفيفين باستخدام System.arraycopy

في هذا البرنامج التعليمي ، سوف نتعلم كيفية دمج جدولين. يوفر المثالان التاليان طريقتين مختلفتين للتسلسل: طريقة أكاديمية للتعلم والثانية مع System.arraycopy().

1) الطريقة الكلاسيكية: تصفح كلا المصفوفتين

public class ConcatArrays {

الفراغ العام الثابت الرئيسي (String[] args) {
String[] t1 = {"1"، "2"، "3"}؛
سلسلة [] t2 = {"4" ، "5" ، "6"} ؛
String [] t12 = سلسلة جديدة [t1.length + t2.length] ؛

/ * التسلسل * /
ل (int i = 0 ؛ i < t1.length ؛ i ++)
t12 [i] = t1 [i] ؛
ل (int i = 0 ؛ i < t2.length ؛ i ++)
// نواصل النسخ في t12 من index
// الذي أوقفناه وهو طول t1
t12 [i + t1.length] = t2 [i] ؛

for (int i = 0 ؛ i < t12.length ؛ i ++)
System.out.println (t12 [i]) ؛
}
}
< / pre> Output

1
2
3
4
5
6
< / pre>

2) مع System.arraycopy () < / h2 >< div الطريقة> هذه الطريقة فعالة ، يمكنك استخدامه لنسخ العناصر من جدول مصدر إلى جدول الوجهة. يقبل خمس وسيطات:
  1. الصفيف المصدر (t1 و t2).
  2. من أي موضع للصفيف المصدر تريد البدء (في حالتنا 0).
  3. الصفيف الوجهة (t12).
  4. من أي موضع للصفيف الوجهة تريد أن تبدأ.
    1. 0 ل t1.< / li>
    2. t1.lenght ل t2.< / li>< / ol>
    3. عدد العناصر التي تريد نسخها (وليس موضع الإيقاف).< / li>< / ol>< / div>
      public class ConcatArrays {

      الفراغ العام الثابت الرئيسي (سلسلة [] args) {
      char[] t1 = {'a' ، 'ب','ج'};
      char[] t2 = {'d','e','f'};
      char[] t12 = حرف جديد [t1.length + t2.length] ؛

      //نسخة من الصفيف الأول
      System.arraycopy (t1, 0, t12, 0, t1.length);
      //نسخة من صفيف الصفيف الثاني
      System.arraycopy (t2، 0، t12، t1.length، t2.length)؛

      for (int i = 0 ؛ i < t12.length ؛ i ++)
      System.out.println (t12 [i]) ؛
      }
      }
      < / pre> Output

      < pre class = "prettyprint lang-java" >a
      b
      c
      d
      e
      f
      < / pre> المراجع
      وثائق أوراكل: فئة النظام
      TutorialsPoint:  Java.lang.System.arraycopy() الطريقة