Доброго времени суток! Результат решения задачи у меня получился аналогично решению 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);
    }
}