Java >> Java tutorial >  >> Java

Flet to arrays i Java

Flet to arrays i Java | Array-programmer i Java – 10 | I det tidligere Java-program har vi set forskellige måder at kopiere arrays i Java på, som også vil blive brugt i dette program. Nu i dette indlæg vil vi diskutere, hvordan man flette to arrays i Java.

Hvordan flettes to arrays i Java? Sammenlægning af to arrays i Java kan også gøres ved at bruge foruddefinerede metoder, eller vi kan gøre det manuelt ved at bruge loops. Lad os diskutere dem én efter én.

Eksempel på sammenlægning af to int-arrays,
Array1 =[10, 20, 30, 40, 50]
Array2 =[9, 18, 27, 36, 45]
Så skal resultatet være,
Merged Array =[10, 20, 30, 40, 50, 9, 18, 27, 36, 45]

Eksempel på sammenlægning af to strenge array,
Array1 =[Java, Python, C++]
Array2 =[HTML, CSS, JavaScript]
Så skal resultatet være,
Merged Array =[Java, Python, C++, HTML, CSS, JavaScript]

Flet to arrays i Java ved hjælp af loops

Trin til at kombinere to arrays i Java,

a) Tag to array, som vil blive flettet, antag src1 og src2.
b) Erklær et nyt array med størrelsen af ​​begge array (src1.length + src2.length ).
c) Kopiér første array (src1) til ny array fra 0 til src1.length-1
d) Kopier anden array (src2) til ny array fra src1.length til (src1.length + src2.length).

Lad os nu demonstrere det gennem et eksempel. Flet to arrays uden at bruge en foruddefineret metode.

Program til at flette to arrays i Java ved hjælp af loops

import java.util.Arrays;

public class CopyArray {

   public static void main(String[] args) {
      
      // array which should be merged
      int src1[] = {10, 20, 30, 40, 50};
      int src2[] = {9, 18, 27, 36, 45};
      
      // create new array 
      int newArray[] = new int[src1.length + src2.length];
      
      // Copy first to new array from 0 to src1.length
      for(int i=0; i<src1.length; i++) {
         newArray[i] = src1[i];
      }
      
      // copy second array to new array
      for(int i=0, j=src1.length; j<(src1.length + src2.length); 
                                                      j++, i++) {
         newArray[j] = src2[i];
      }
      
      // display all array
      System.out.println("Array1 = " + Arrays.toString(src1));
      System.out.println("Array2 = " + Arrays.toString(src2));
      System.out.println("Merged Array = " 
                             + Arrays.toString(newArray));
   }
}

Output:-

Matrix1 =[10, 20, 30, 40, 50]
Matrix2 =[9, 18, 27, 36, 45]
Flettet Matrix =[10, 20, 30, 40, 50, 9, 18, 27, 36, 45]

I dette program har vi brugt toString()-metoden i java.util.Arrays-klassen for at vise arrayet, der er givet til at konvertere array til String-type.

Flet Two Array ved hjælp af System.arraycopy()-metoden

I stedet for loops kan vi også bruge den foruddefinerede metode System.arraycopy() . System.arraycopy()-metoden i Java er givet for at kopiere et array til et andet array. Den kopierer et array fra det angivne kildearray, begyndende ved den specificerede position, til den angivne position for destinationsarrayet.

Syntaks for arraycopy() metoden i java.lang.System class:- public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

Parametre i denne metode:-

  • src:- Kildearrayet.
  • srcPos:- Startposition i kildearrayet.
  • dest:- Destinationsarrayet.
  • destPos:- startposition i destinationsarrayet.
  • længde:- antallet af array-elementer, der skal kopieres.

Da java.lang.System-klassen importeres som standard i alle Java-klasser, er det derfor ikke nødvendigt at bruge arraycopy()-metoden eksplicit.

Program til at flette to arrays ved hjælp af System.arraycopy()-metoden

import java.util.Arrays;

public class CopyArray {

   public static void main(String[] args) {
      
      // array which should be merged
      int src1[] = {10, 20, 30, 40, 50};
      int src2[] = {9, 18, 27, 36, 45};
      
      // create new array 
      int newArray[] = new int[src1.length + src2.length];
      
      // Copy first to new array from 0 to src1.length
      System.arraycopy(src1, 0, newArray, 0, src1.length);
      
      // copy second array to new array
      System.arraycopy(src2, 0, newArray, src1.length, src2.length);
      
      // display all array
      System.out.println("Array1 = " + Arrays.toString(src1));
      System.out.println("Array2 = " + Arrays.toString(src2));
      System.out.println("Merged Array = " 
                             + Arrays.toString(newArray));
   }
}

Output:-

Matrix1 =[10, 20, 30, 40, 50]
Matrix2 =[9, 18, 27, 36, 45]
Flettet Matrix =[10, 20, 30, 40, 50, 9, 18, 27, 36, 45]

Sådan flettes to strengearrays i Java

I de foregående eksempler fusionerede vi int-arrayet. Lad os nu se disse programmer ved at flette to String-arrays.

import java.util.Arrays;

public class CopyArray {

   public static void main(String[] args) {
      
      // array which should be merged
      String src1[] = {"Java", "Python", "C++"};
      String src2[] = {"HTML", "CSS", "JavaScript"};
      
      // create new array 
      String newArray[] = new String[src1.length + src2.length];
      
      // Copy first to new array from 0 to src1.length
      System.arraycopy(src1, 0, newArray, 0, src1.length);
      
      // copy second array to new array
      System.arraycopy(src2, 0, newArray, src1.length, src2.length);
      
      // display all array
      System.out.println("Array1 = " + Arrays.toString(src1));
      System.out.println("Array2 = " + Arrays.toString(src2));
      System.out.println("Merged Array = " 
                             + Arrays.toString(newArray));
   }
}

Output:-

Array1 =[Java, Python, C++]
Array2 =[HTML, CSS, JavaScript]
Flettet Array =[Java, Python, C++, HTML, CSS, JavaScript]


Java tag