Ваш вопрос не указывает, есть ли у вас какие-либо ограничения в отношении типа алгоритма, который вы можете использовать. Предполагая, что у вас есть свобода делать все, что вы хотите, я бы предложил использовать List
для хранения четных значений, когда вы перебираете полный массив и копируете любые четные числа в список.
Существует несколько различных реализаций , которые вы можете использовать. Я оставлю это вам, чтобы сделать небольшую работу и определить, какие из них лучше всего использовать. Подсказка - проверьте JavaDocs для реализации классов List
.
Как только у вас есть полный List
со всеми четными числами, это довольно тривиальное упражнение для преобразования этого обратно в массив с помощью метода toArray
. Опять же, я оставлю это вам, чтобы сделать небольшую работу, чтобы найти примеры того, как использовать метод. Подсказка. В StackOverflow есть несколько сообщений, которые его используют.
Если вы ограничены типом структур, которые вы можете использовать, и можете использовать только массивы, то, вероятно, это должен быть многопроходный процесс, в котором вы используете отдельный индекс для вашего «четного» массива и как только вы закончите, вам нужно восстановить массив до конечного массива надлежащего размера.
В качестве окончательного предложения вместо использования цикла с индексом для цикла в вашем полном массиве вы можете использовать Java 5+ для каждого расширенного синтаксиса цикла и упростить ваши потребности в индексировании. Пример:
for(int value : input){
if(value % 2 == 0)
// do something
}
Это устранит хотя бы один запутанный индекс. Как забавное упражнение, посмотрите, можете ли вы закодировать свою функцию, не требуя каких-либо индексов цикла, используя некоторые из предложений, которые я сделал выше.
Если есть что-то непонятное, сообщите мне.
Пожалуйста, отметьте как домашнюю работу, если это так. –
это домашнее задание? – hvgotcodes
Да, это так. Я добавил тег. –