String[] temp = new String[array.length];
for (int i = 0; i < array.length; i++) {
if (array[i] != null)
temp[i] = array[i];
}
for (int i = 0; i < array.length; i++) {
array[i] = temp[i];
}
Почему не принимает валидатор?Сергей Коваленко
38 уровень
Вариант с временным массивом.
Архивный
Комментарии (12)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дмитрий
6 марта 2021, 11:54
Я тоже сделал с копией массива вот так:
Валидатор принял.
+1
Сергей Коваленко
6 марта 2021, 13:17
У меня в итоге вот так
ну и дальше заполнение исходного массива новыми данными из temp[].
0
Дмитрий
6 марта 2021, 13:22
Все-таки для меня конструкция с двумя счетчиками проще воспринимается в while)
+1
Сергей Коваленко
6 марта 2021, 13:31
Дело вкуса 😄
0
Сергей Коваленко
2 марта 2021, 17:52
так тоже нет.. 🙄
0
Ksenia VolkovaJava Developer в DXCMaster
2 марта 2021, 17:57
У тебя все не-null ячейки запишутся в те же самые позиции, что и в исходном массиве
Эта часть тоже неправильная
Допустим, у тебя в array один null в середине массива. По идее он должен оказаться в самом конце - а у тебя где он будет?
+1
Сергей Коваленко
2 марта 2021, 18:27
Спасибо 🙂
13 попыток..
0
Ksenia VolkovaJava Developer в DXCMaster
2 марта 2021, 16:34полезный
Твой temp ничем не будет отличаться от array, и все null там будут на тех же местах.
+1
BanLex System Engineer
2 марта 2021, 16:33
Попробуй использовать второй счётчик. temp[ j ] = array[ i ];
+2
Сергей Коваленко
2 марта 2021, 18:27
0
Сергей Коваленко
2 марта 2021, 18:27
благодарю
0
BanLex System Engineer
2 марта 2021, 16:24полезный
temp[i] = array[i] по меому, он просто копирует, без дефрагментации
+1