arraycopy: last destination index 12 out of bounds for int[6]
Не понимаю, что нужно поменять. Хочу реализовать метод, который может объединить два массива в один.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class TwoArraysToOne {
public static void main(String[] args) {
int[] array1 = {4, 3, 2, 6, 2, 7};
int[] array2 = {11, -2, 16, 4, 8, 12};
connectArrays(array1, array2);
}
public static void connectArrays(int[] array1, int[] array2) {
System.arraycopy(array1, 0, array2, array2.length - 1, array1.length);
for (int i : array2) {
System.out.println(i);
}
}
}
Ответы (1 шт):
Автор решения: Дмитрий
→ Ссылка
вы копируете один исходный массив во второй исходный массив, а вам надо создать новый массив и в него скопировать два исходных.
import java.util.Arrays;
public class TwoArraysToOne {
public static void main(String[] args) {
int[] array1 = {4, 3, 2, 6, 2, 7};
int[] array2 = {11, -2, 16, 4, 8, 12};
int[] connectArrays = connectArrays(array1, array2);
System.out.println(Arrays.toString(connectArrays));
}
public static int [] connectArrays(int[] array1, int[] array2) {
int [] source = new int [array1.length + array2.length];
System.arraycopy(array1, 0, source, 0, array1.length);
System.arraycopy(array2, 0, source, array1.length, array2.length);
return source;
}
}