Подскажите пожалуйста.
Оставил проверочную печать в коде. Она показывает что массив сформирован согласно условию задачи.
но упираюсь в метод void. попробовал с основного метода перенести в void печать на экран, не проходит второе условие задачи.
Пытался искать ответ в гугле и старых лекциях. Все пишут одно и тоже: void не возвращает значения. Как же тогда получить то что происходит в нем (учитывая, что main менять нельзя).
Буду благодарен не только за подсказку, но и за ссылку на статью где человеческим языком написано, как решаются такие моменты.
package com.javarush.task.pro.task10.task1012;
import java.util.Arrays;
import java.util.Objects;
/*
Дефрагментация памяти
*/
public class Memory {
public static void main(String[] args) {
String[] memory = {"object15", null, null, "object2", null, null, null, "object32", null, "object4"};
executeDefragmentation(memory);
}
public static void executeDefragmentation(String[] array) {
String[] rezult = new String[array.length];
int b=0;
for (int i=0; i< array.length; i++) {
if (array[i]!=null) {
rezult[b] = array[i];
b++;
}
}
array = rezult;
System.out.println(Arrays.toString(array));
}
}
array = result
, Вы одной локальной переменной, присваиваете значение другой. Внешние переменные при этом не меняются.