Хотел бы понять почему. Критика приветствуется! :)
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 countNulls = 0, currentNullPos = 0;
for (String string : array) {
if (string == null) {
countNulls++;
}
}
int oper = 1;
while (oper != 0) {
oper = 0;
for (int i = currentNullPos; i < array.length; i++) {
if (array[i] == null) {
currentNullPos = i;
break;
}
}
for (int i = currentNullPos + 1; i < array.length; i++) {
if (array[i] != null) {
array[currentNullPos] = array[i];
array[i] = null;
oper = 1;
break;
}
}
}
}
}