public class Memory {
public static final String[] MEMORY = {"object15", null, null, "object2", null, null, null, "object32", null, "object4"};
public static void defragmentation(String[] array) {
int s = 0;
for (int i = 0; i < array.length; i++) {
if (array[i] != null) {
array[s] = array[i];
s++;
}
}
for (int i = s; i < array.length; i++) {
array[i] = null;
}
}
public static void main(String[] args) {
defragmentation(MEMORY);
Arrays.stream(MEMORY).forEach(System.out::println);
}
}
За что отвечает int s, второй цикл что выполняет?
Алексей
14 уровень
кто сможет обяснить что тут происходит?
Архивный
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
MasterMarg
14 января 2021, 13:48
Переставляют значимые величины в начало массива. s - переменная, отвечающая за индекс нового, отсортированного-дефрагментированного массива. Второй цикл заполняет оставшиеся ячейки null.
0
Алексей
14 января 2021, 13:58
понял спасибо
0
MasterMarg
14 января 2021, 14:21
Не совсем верно написал, s - индекс не нового, а того же самого старого массива, только другой индекс, который отвечает за вставку значимых величин в этот массив. А второй цикл стирает старые, уже ненужные записи, которые могли остаться в хвосте массива
0