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) {
        //напишите тут ваш код
        int len = array.length;
        int lastEl = len - 1;
        int counter = 0; //Счетчик null'ов
        for(int i = 0; i < len; i++){ //считаем кол-во null в массиве
            if (array[i] == null)
               counter++;
        }
        for (int i = 0; i < len - counter; i++) { //что бы while не перешел черту, ограничиваю на кол-ве не null эл-ов
            if (array[i] == null ) {
                while (array[lastEl] == null){ // ищу индексы null
                    lastEl--;
                }
                array[i] = array[lastEl];
                array[lastEl] = null;
            }
        }
    }
}
//вывод [object15, object4, object32, object2, null, null, null, null, null, null]. Почему условие не выполняется?