Объясните, пожалуйста, почему если убрать break неправильно работает? зачем он тут?
Если на скриншоте плохо видно:
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) {
for (int i = 0; i < array.length; i++) {
if (array[i] == null) {
for (int j = i + 1; j < array.length; j++) {
if (array[j] != null) {
array[i] = array[j];
array[j] = null;
break;
}
}
}
}
}
}
Если на скриншоте плохо видно:
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) {
for (int i = 0; i < array.length; i++) {
if (array[i] == null) {
for (int j = i + 1; j < array.length; j++) {
if (array[j] != null) {
array[i] = array[j];
array[j] = null;
break;
}
}
}
}
}
}