У овом програму научићете да спајате два низа у Јави помоћу арраицопи и без ње.
Да бисте разумели овај пример, требало би да имате знање о следећим темама програмирања Јава:
- Јава низови
- Јава за сваку петљу
Пример 1: Спојите два низа помоћу арраицопи
import java.util.Arrays; public class Concat ( public static void main(String() args) ( int() array1 = (1, 2, 3); int() array2 = (4, 5, 6); int aLen = array1.length; int bLen = array2.length; int() result = new int(aLen + bLen); System.arraycopy(array1, 0, result, 0, aLen); System.arraycopy(array2, 0, result, aLen, bLen); System.out.println(Arrays.toString(result)); ) )
Оутпут
(1, 2, 3, 4, 5, 6)
У горњем програму имамо два целобројна низа низ1 и низ2.
Да бисмо комбиновали (спојили) два низа, пронађемо његову дужину ускладиштену у аЛен и бЛен. Затим креирамо нови резултат целобројног низа дужине аЛен + бЛен.
Сада, да бисмо комбиновали оба, копирамо сваки елемент у оба низа да бисмо добили резултат помоћу arraycopy()
функције.
arraycopy(array1, 0, result, 0, aLen)
Функција, једноставно речено, говори програм за копирање низ1 почевши од индекса 0
на резултат индекса 0
Алену.
Слично томе, фор arraycopy(array2, 0, result, aLen, bLen)
каже програму да копира низ2 почевши од индекса 0
до result
индекса аЛен до бЛен.
Пример 2: Спојите два низа без употребе арраицопи
import java.util.Arrays; public class Concat ( public static void main(String() args) ( int() array1 = (1, 2, 3); int() array2 = (4, 5, 6); int length = array1.length + array2.length; int() result = new int(length); int pos = 0; for (int element : array1) ( result(pos) = element; pos++; ) for (int element : array2) ( result(pos) = element; pos++; ) System.out.println(Arrays.toString(result)); ) )
Оутпут
(1, 2, 3, 4, 5, 6)
У горњем програму, уместо да користимо arraycopy
, ручно копирамо сваки елемент оба низа арраи1 и арраи2 да бисмо добили резултат.
Чувамо укупну дужину потребну за резултат, тј array1.length + array2. length
. Затим креирамо нови резултат низа дужине.
Сада користимо петљу фор-еацх за итерацију кроз сваки елемент низа1 и чувамо га у резултату. Након додељивања смо повећати позицију поз за 1, pos++
.
Исто тако, радимо исто за низ2 и чувамо сваки елемент у резултату почев од положаја након низа1.