После просмотра правильного решения я понял, что нужно второй массив создавать и с ним работать и т.д., но мне интересно, по какой причине такой вариант не подходит? (просто я к концу лекции напрочь забыл вообще все и пришлось импровизировать)
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);
System.out.println(Arrays.toString(memory));
}
public static void executeDefragmentation(String[] array) {
for (int i = 0; i <= array.length -1; i++ ) {
if (array[i] == null) {
array[i] = "z";
}
}
Arrays.sort(array);
for(int i = 0; i <= array.length -1; i++) {
if (array[i] == "z")
array[i] = null;
}
}
}