logo

Како спојити два низа у Јави

Спајање два низа у Јави је слично спајању или комбиновању два низа у један објекат низа. Морамо спојити два низа тако да елементи низа задрже свој првобитни редослед у ново спојеном низу. Елементи првог низа претходе елементима другог низа у ново спојеном низу. На пример:

 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 

Постоје следећи начини за спајање два низа:

  • Јава арраицопи() методом
  • Без употребе арраицопи() методом
  • Јава Збирке
  • Јава Стреам АПИ

Јава арраицопи() метода

Јава арраицопи() је метод за Систем класа којој припада јава.ланг пакет. Копира низ из наведеног изворног низа на наведену позицију одредишног низа. Број копираних елемената једнак је аргументу дужине.

Синтакса:

регуларни израз у јава
 public static void arraycopy(Object source, int source_position, Object destination, int destination_position, int length) 

Параметерс

    извор: То је изворни низ.соурце_поситион: Почетна тачка у изворном низу.одредиште: То је одредишни низ.одредишна_позиција: Почетна позиција у низу одредишта.дужина: Број елемената низа за копирање

То баца НуллПоинтерЕкцептион ако је изворни или одредишни низ нулл. Такође баца АрраиИндекОутОфБоундсЕкцептион ако :

    соурце_поситионили одредишна_позиција или је дужина негативна.извор_позиција+дужинаје већа од дужине изворног низа, или одредишна_позиција+дужина је већа од дужине одредишног низа.

Пример методе арраицопи().

У следећем примеру, направили смо два низа целих бројева фирстАрраи и сецондАрраи . Да бисмо спојили два низа, налазимо његову дужину и чувамо у променљивој фал и сал. Након тога, креирамо нови низ целих бројева резултат који чува збир дужина оба низа. Сада копирајте сваки елемент оба низа у низ резултата користећи арраицопи() функција.

 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 } } 

Излаз:

басх спојити низове
 [23, 45, 12, 78, 4, 90, 1, 77, 11, 45, 88, 32, 56, 3] 

Хајде да видимо још један пример у коме смо навели соуре_арраи, дестинацију, одредишну позицију, изворну позицију и дужину. Можемо спојити низ према наведеним позицијама и дужини.

Пример

 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;>

Без коришћења методе арраицопи().

Пример спајања два низа

У следећем примеру смо иницијализовали два низа фирстАрраи и сецондАрраи целобројног типа. Ручно копирајте сваки елемент оба низа у мергедАрраи и конвертујте тај низ у Стринг помоћу методе тоСтринг() класе Арраи.

 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 } } 

Излаз:

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

Коришћење колекција

Пример спајања два низа у Јави

У следећем примеру, иницијализовали смо два низа стр1 и стр2 типа Стринг. Након тога смо креирали приказ листе стр1 користећи метод Арраис.асЛист(). Сада смо креирали приказ листе стр2 и додали све елементе стр2 у листу. Поново извршите конверзију из листе у низ и сачувајте резултујући низ у променљиву стр3.

 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 } } 

Излаз:

 [A, E, I, O, U] 

Јава Стреам АПИ

Стреам.оф() метода

јава приоритетни ред

Тхе Стреам.оф() метода интерфејса Стреам враћа секвенцијално уређени ток чији су елементи вредности.

који је Фреди Меркјури

Синтакса

 static Stream of(T....values) 

Где М Т је тип елемената тока. Метода прихвата вредности (елементи новог тока).

метода флатМап().

Тхе флатМап() метод је метод интерфејса Стреам. Враћа ток који се састоји од резултата.

Синтакса

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

Где Р је тип елемента новог тока. Метод прихвата а мапер (функција која се примењује на сваки елемент који производи ток нових вредности) као параметар.

метода тоАрраи().

Тхе тоАрраи() метода Стреам интерфејса враћа низ који садржи елементе тока.

баци стринг у инт јава

Синтакса

 Object[] toArray() 

Пример спајања два низа користећи Стреам АПИ

 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)); } } 

Излаз:

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