logo

Java'da İki Dizi Nasıl Birleştirilir

Java'da iki diziyi birleştirmek, iki diziyi tek bir dizi nesnesinde birleştirmeye veya birleştirmeye benzer. Yeni birleştirilmiş dizide dizi öğelerinin orijinal sırasını koruyacak şekilde iki diziyi birleştirmeliyiz. Yeni birleştirilmiş dizide, birinci dizinin elemanları ikinci dizinin elemanlarından önce gelir. Örneğin:

 int[] arr1={1, 2, 3, 4, 5, 6}; //first array int[] arr2={7, 8, 9, 0}; //second array int[] arr3={1, 2, 3, 4, 5, 6, 7, 8, 9, 0} //resultant array 

İki diziyi birleştirmenin aşağıdaki yolları vardır:

  • Java dizi kopyası() yöntem
  • Kullanmadan dizi kopyası() yöntem
  • Java Koleksiyonlar
  • Java Aktarım API'si

Java arraycopy () yöntemi

Java dizi kopyası() yöntemi Sistem ait olduğu sınıf java.lang paket. Bir diziyi belirtilen kaynak diziden hedef dizinin belirtilen konumuna kopyalar. Kopyalanan öğelerin sayısı uzunluk argümanına eşittir.

Sözdizimi:

vektörün boyutu c++
 public static void arraycopy(Object source, int source_position, Object destination, int destination_position, int length) 

Parametreler

    kaynak: Bir kaynak dizisidir.kaynak_konumu: Kaynak dizideki başlangıç ​​noktası.varış noktası: Bir hedef dizisidir.hedef_konumu: Hedef dizideki başlangıç ​​konumu.uzunluk: Kopyalanacak dizi öğelerinin sayısı

Fırlatıyor NullPointerException kaynak veya hedef dizisi boşsa. Ayrıca atar ArrayIndexOutOfBoundsException if :

    kaynak_konumuveya hedef_konumu veya uzunluk negatiftir.kaynak_konumu+uzunlukkaynak dizinin uzunluğundan daha büyükse veya hedef_konum+uzunluk hedef dizinin uzunluğundan daha büyük.

Arraycopy() yöntemi örneği

Aşağıdaki örnekte iki tamsayı dizisi oluşturduk ilkArray Ve ikinciArray . İki diziyi birleştirmek için uzunluğunu buluyoruz ve sırasıyla fal ve sal değişkenlerinde saklıyoruz. Daha sonra yeni bir tamsayı dizisi oluşturuyoruz. sonuç her iki dizinin uzunluğunun toplamını saklayan. Şimdi, her iki dizinin her bir öğesini kullanarak sonuç dizisine kopyalayın. dizi kopyası() işlev.

 import java.util.Arrays; public class MergeArrayExample1 { public static void main(String[] args) { int[] firstArray = {23,45,12,78,4,90,1}; //source array int[] secondArray = {77,11,45,88,32,56,3}; //destination array int fal = firstArray.length; //determines length of firstArray int sal = secondArray.length; //determines length of secondArray int[] result = new int[fal + sal]; //resultant array of size first array and second array System.arraycopy(firstArray, 0, result, 0, fal); System.arraycopy(secondArray, 0, result, fal, sal); System.out.println(Arrays.toString(result)); //prints the resultant array } } 

Çıktı:

 [23, 45, 12, 78, 4, 90, 1, 77, 11, 45, 88, 32, 56, 3] 

Soure_array, hedef, hedef_konumu, kaynak konumu ve uzunluğu belirttiğimiz başka bir örneğe bakalım. Diziyi belirtilen konumlara ve uzunluğa göre birleştirebiliriz.

Örnek

javascript için uyku
 import java.lang.*; public class MergeArrayExample2 { public static void main(String[] args) { int firstArray[] = { 11,22,33,44,55,98,76,54,60}; int secondArray[] = {66,77,88,99,22,67,21,90,80,70}; int source_arr[], sourcePos, dest_arr[], destPos, len; source_arr = firstArray; dest_arr = secondArray; sourcePos = 2; destPos = 4; len = 3; // Print elements of source System.out.print(&apos;source_array : &apos;); for (int i = 0; i <firstarray.length; i++) system.out.print(firstarray[i] + ' '); system.out.println(''); system.out.println('sourcepos : sourcepos); print elements of destination system.out.print('dest_array for (int i="0;" < secondarray.length; system.out.print(secondarray[i] system.out.println('destpos destpos); system.out.println('len len); invoking arraycopy() method system.arraycopy(source_arr, sourcepos, dest_arr,destpos, after system.out.print('resultant array } pre> <p> <strong>Output:</strong> </p> <pre> source_array: 11 22 33 44 55 98 76 54 60 sourcePos: 2 dest_array: 66 77 88 99 22 67 21 90 80 70 destPos: 4 len: 3 Resultant array: 66 77 88 99 33 44 55 90 80 70 </pre> <h2>Without using arraycopy() method</h2> <p> <strong>Example of merging two arrays</strong> </p> <p>In the following example, we have initialized two arrays firstArray and secondArray of integer type. Manually copy the each element of both arrays to mergedArray and convert that array into String by using toString() method of Array class.</p> <pre> public class MergeArrayExample3 { public static void main(String[] args) { int[] firstArray = {56,78,90,32,67,12}; //initialized array int[] secondArray = {11,14,9,5,2,23,15}; int length = firstArray.length + secondArray.length; //add the length of firstArray into secondArray int[] mergedArray = new int[length]; //resultant array int pos = 0; for (int element : firstArray) //copying elements of secondArray using for-each loop { mergedArray[pos] = element; pos++; //increases position by 1 } for (int element : secondArray) //copying elements of firstArray using for-each loop { mergedArray[pos] = element; pos++; } System.out.println(Arrays.toString(mergedArray)); //prints the resultant array } } </pre> <p> <strong>Output:</strong> </p> <pre> [56, 78, 90, 32, 67, 12, 11, 14, 9, 5, 2, 23, 15] </pre> <h2>Using Collections</h2> <p> <strong>Example of merging two arrays in Java</strong> </p> <p>In the following example, we have initialized two arrays str1 and str2 of String type. After that we have created a list view of str1 by using the Arrays.asList() method. Now we have created the list view of str2 and added all the elements of str2 into the list. Again perform conversion from list to array and store the resultant array into str3 variable.</p> <pre> import java.util.*; public class MergeArrayExample4 { public static void main(String args[]) { String str1[] = { &apos;A&apos;, &apos;E&apos;, &apos;I&apos; }; //source array String str2[] = { &apos;O&apos;, &apos;U&apos; }; //destination array List list = new ArrayList(Arrays.asList(str1)); //returns a list view of an array //returns a list view of str2 and adds all elements of str2 into list list.addAll(Arrays.asList(str2)); Object[] str3 = list.toArray(); //converting list to array System.out.println(Arrays.toString(str3)); //prints the resultant array } } </pre> <p> <strong>Output:</strong> </p> <pre> [A, E, I, O, U] </pre> <h2>Java Stream API</h2> <p> <strong>Stream.of() method</strong> </p> <p>The <strong>Stream.of()</strong> method of Stream interface returns a sequential ordered stream whose elements are the values.</p> <p> <strong>Syntax</strong> </p> <pre> static Stream of(T....values) </pre> <p>Where M <strong>T</strong> is the type of stream elements. The method accepts <strong>values</strong> (elements of the new stream).</p> <p> <strong>flatMap() method</strong> </p> <p>The <strong>flatMap()</strong> method is the method of Stream interface. It returns a stream consisting of the result.</p> <p> <strong>Syntax</strong> </p> <pre> Stream flatMap(Function<? Super T, ? extends Stream> mapper) </pre> <p>Where <strong>R</strong> is the element type of new stream. The method accepts a <strong>mapper</strong> (a function to apply to each element which produces a stream of new values) as a parameter.</p> <p> <strong>toArray() method</strong> </p> <p>The <strong>toArray()</strong> method of Stream interface returns an array containing the elements of the stream.</p> <p> <strong>Syntax</strong> </p> <pre> Object[] toArray() </pre> <p> <strong>Example of merging two arrays using Stream API</strong> </p> <pre> import java.util.stream.Stream; import java.util.Arrays; import java.io.*; public class MergeArrayExample5 { // function to merge two arrays public static Object[] mergeArray(T[] arr1, T[] arr2) { return Stream.of(arr1, arr2).flatMap(Stream::of).toArray(); } public static void main (String[] args) { Integer[] firstArray = new Integer[]{13,12,11,6,9,3}; //source array Integer[] secondArray = new Integer[]{78,34,56,67,2,11,7}; //destination array Object[] mergedArray = mergeArray(firstArray,secondArray); //merged array System.out.println(&apos;Merged array: &apos;+ Arrays.toString(mergedArray)); } } </pre> <p> <strong>Output:</strong> </p> <pre> Merged array: [13, 12, 11, 6, 9, 3, 78, 34, 56, 67, 2, 11, 7] </pre> <hr></firstarray.length;>

Arraycopy() yöntemini kullanmadan

İki diziyi birleştirme örneği

Aşağıdaki örnekte, tamsayı türünden birinciArray ve ikinciArray dizilerini başlattık. Her iki dizinin her bir öğesini mergedArray'e manuel olarak kopyalayın ve Array sınıfının toString() yöntemini kullanarak bu diziyi String'e dönüştürün.

css metni kaydırma
 public class MergeArrayExample3 { public static void main(String[] args) { int[] firstArray = {56,78,90,32,67,12}; //initialized array int[] secondArray = {11,14,9,5,2,23,15}; int length = firstArray.length + secondArray.length; //add the length of firstArray into secondArray int[] mergedArray = new int[length]; //resultant array int pos = 0; for (int element : firstArray) //copying elements of secondArray using for-each loop { mergedArray[pos] = element; pos++; //increases position by 1 } for (int element : secondArray) //copying elements of firstArray using for-each loop { mergedArray[pos] = element; pos++; } System.out.println(Arrays.toString(mergedArray)); //prints the resultant array } } 

Çıktı:

 [56, 78, 90, 32, 67, 12, 11, 14, 9, 5, 2, 23, 15] 

Koleksiyonları Kullanma

Java'da iki diziyi birleştirme örneği

Aşağıdaki örnekte, String tipinde iki dizi str1 ve str2'yi başlattık. Daha sonra Arrays.asList() metodunu kullanarak str1'in liste görünümünü oluşturduk. Artık str2'nin liste görünümünü oluşturduk ve str2'nin tüm elemanlarını listeye ekledik. Yine listeden diziye dönüşüm gerçekleştirin ve elde edilen diziyi str3 değişkenine kaydedin.

 import java.util.*; public class MergeArrayExample4 { public static void main(String args[]) { String str1[] = { &apos;A&apos;, &apos;E&apos;, &apos;I&apos; }; //source array String str2[] = { &apos;O&apos;, &apos;U&apos; }; //destination array List list = new ArrayList(Arrays.asList(str1)); //returns a list view of an array //returns a list view of str2 and adds all elements of str2 into list list.addAll(Arrays.asList(str2)); Object[] str3 = list.toArray(); //converting list to array System.out.println(Arrays.toString(str3)); //prints the resultant array } } 

Çıktı:

 [A, E, I, O, U] 

Java Akışı API'si

Stream.of() yöntemi

Akışı() Stream arabiriminin yöntemi, öğeleri değerler olan sıralı bir akış döndürür.

Sözdizimi

 static Stream of(T....values) 

M nerede T akış elemanlarının türüdür. Yöntem kabul edilir değerler (yeni akışın unsurları).

karşılaştırma yöntemi java

düzMap() yöntemi

düz harita() yöntem, Akış arayüzünün yöntemidir. Sonuçtan oluşan bir akış döndürür.

Sözdizimi

 Stream flatMap(Function<? Super T, ? extends Stream> mapper) 

Nerede R yeni akışın öğe türüdür. Yöntem bir kabul eder haritacı (yeni değerler akışı üreten her öğeye uygulanacak bir işlev) parametre olarak.

toArray() yöntemi

sıralamak() Stream arabiriminin yöntemi, akışın öğelerini içeren bir dizi döndürür.

Sözdizimi

 Object[] toArray() 

Stream API'yi kullanarak iki diziyi birleştirme örneği

css geçiş opaklığı
 import java.util.stream.Stream; import java.util.Arrays; import java.io.*; public class MergeArrayExample5 { // function to merge two arrays public static Object[] mergeArray(T[] arr1, T[] arr2) { return Stream.of(arr1, arr2).flatMap(Stream::of).toArray(); } public static void main (String[] args) { Integer[] firstArray = new Integer[]{13,12,11,6,9,3}; //source array Integer[] secondArray = new Integer[]{78,34,56,67,2,11,7}; //destination array Object[] mergedArray = mergeArray(firstArray,secondArray); //merged array System.out.println(&apos;Merged array: &apos;+ Arrays.toString(mergedArray)); } } 

Çıktı:

 Merged array: [13, 12, 11, 6, 9, 3, 78, 34, 56, 67, 2, 11, 7]