Мальчишки и девчонки, что может быть не так, метод работает. Валидатор не принимает.
идея :
Создаем копию массива переданного в метод
Прогоняем оригинальный массив сравнивая с копией
После окончания копии массива(null же позиции пропускаем) инициируем остаток массива значением null.
вот...что может быть не так?
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[] memoryCopy = Arrays.copyOf(array, array.length);
int y = 0;
for (int x = 0; x < array.length; x++) {
if (y >= array.length) {
array[x] = null;
continue;
}
for (int g = 0; g < memoryCopy.length; g++) {
if (memoryCopy[y] == null) {
y++;
} else {
array[x] = memoryCopy[y];
y++;
break;
}
}
}
}
}
