Доброго времени суток! Результат решения задачи у меня получился аналогично решению Java Rush, но в своей промежуточной версии хотел использовать "Arrays,copy of" вместо поэлементного копирования. По итогу при запуске программы выводился результат изначального массива memory, то есть до всех преобразований в методе executeDefragmentation. Пожалуйста, помогите разобраться, что я сделал не верно.
package com.javarush.task.pro.task10.task1012;
import java.lang.reflect.Array;
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);
System.out.println(Arrays.toString(memory));
}
public static void executeDefragmentation(String[] array) {
String[] defragmented = new String[array.length];
for (int n = 0,i=0; n< array.length;n++,i++) {
if(array[n]!=null) {
defragmented[i]=array[n];
}
else {
i--;
}
}
array = Arrays.copyOf(defragmented,array.length);
}
}