Попробовала решить сама, решила почитать комментарии с рекомендациями. Попробовала использовать метод пузырьком, решила что проще использовать резервный массив (не додумалась как сделать проверку на необходимость очередного прогона цикла).
На бумажке нарисовала, на бумажке все работает... А вот при запуске программы выводится кракозябра... Хелп, в чем косяк?
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) {
String[] temp = new String[array.length];
int x = 0;
for (int i=0; i<array.length; i++){
if (array[i]==null){
temp[x]=array[i];
x++;
}
else temp[array.length-i+x]=array[i];
}
for (int i=0; i<array.length; i++){
array[i]=temp[i];
}
}
}