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]