Код выполняет задание, но показывает ошибку.
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 end = null;
int w=0;
for(int i=0; i< array.length;i++){
if(array[i]!=null){
w++;
}
}
for(int i =0 ; i<w+1;i++){
if(i>0 && array[i-1]==null){
i--;
}
if(array[i]==null) {
end = array[i];
for (int j = i; j < array.length-1; j++) {
array[j] = array[j+1];
}
array[array.length-1] = end;
}
}
}
}