Ниже объясню как понимаю должен работать метод reverseArray:
При передаче массива array в качестве аргумента в метод передается лишь ссылка на него и далее в самом методе при обращении к массиву array мы работаем НЕ с копией а именно с оригинальным array объявленным в main, если это так, то я абсолютно не понимаю почему в конце когда я перезаписываю ссылку из tmp в array данные в array не изменяются!!(точнее они изменяются но после выхода из метода array не сохраняет значения) И после завершения программы.
public class Solution {
public static void main(String[] args) {
int[] array = {11, 22, 33, 44, 55, 66, 77, 88, 99};
printArray(array);
reverseArray(array);
printArray(array);
}
public static void reverseArray(int[] array) {
//напишите тут ваш код
int[] tmp = new int[array.length];
int count = array.length - 1;
for(int i = 0; i < array.length; i++)
tmp[count--] = array[i];
array = tmp;
}
public static void printArray(int[] array) {
for (int i : array) {
System.out.print(i + ", ");
}
System.out.println();
}
}
я получаю:
11, 22, 33, 44, 55, 66, 77, 88, 99,
11, 22, 33, 44, 55, 66, 77, 88, 99,
Если из метода возвращаю массив и просто перезаписываю в Main существующий array то все работает как нужно но код проверку не проходит:
public class Solution {
public static void main(String[] args) {
int[] array = {11, 22, 33, 44, 55, 66, 77, 88, 99};
printArray(array);
array = reverseArray(array);
printArray(array);
}
public static int[] reverseArray(int[] array) {
//напишите тут ваш код
int[] tmp = new int[array.length];
int count = array.length - 1;
for(int i = 0; i < array.length; i++)
tmp[count--] = array[i];
return tmp;
}
public static void printArray(int[] array) {
for (int i : array) {
System.out.print(i + ", ");
}
System.out.println();
}
}
я получаю:
11, 22, 33, 44, 55, 66, 77, 88, 99,
99, 88, 77, 66, 55, 44, 33, 22, 11,
Вывожу массив не в main а в самом reverseArray()
public class Solution {
public static void main(String[] args) {
int[] array = {11, 22, 33, 44, 55, 66, 77, 88, 99};
printArray(array);
reverseArray(array);
}
public static void reverseArray(int[] array) {
//напишите тут ваш код
int[] tmp = new int[array.length];
int count = array.length - 1;
for(int i = 0; i < array.length; i++)
tmp[count--] = array[i];
printArray(tmp);
}
public static void printArray(int[] array) {
for (int i : array) {
System.out.print(i + ", ");
}
System.out.println();
}
}
Вывод:
11, 22, 33, 44, 55, 66, 77, 88, 99,
99, 88, 77, 66, 55, 44, 33, 22, 11,