Я пытаюсь написать метод, который находит все нечетные целые числа из массива и возвращает новый массив с целыми числами.Как создать новый массив из другого рекурсивного массива
ответ
проблема заключается в том, что вы инициализируете свой возвращаемый массив с одинаковым размером входного массива x. int [] по умолчанию будет иметь значение 0.
Что вы должны сделать, это если вы найдете нечетное, а затем вычтите размер на единицу, а затем инициализируете массив, так что у вас не будет «пустых» ящиков, которые по умолчанию 0
Когда вы ищете какой-то ответ, и вы не знаете точный размер, что это хорошая идея, чтобы использовать List
, например ArrayList
, которые могут помочь в вашем случае:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
List<Integer> result = filterOdd(a);
for (Integer i : result) {
System.out.println(i);
}
}
public static List<Integer> filterOdd(int[] m) {
return filterOddHelp(m, 0, m.length - 1);
}
public static List<Integer> filterOddHelp(int[] x, int i, int j) {
List<Integer> returnArray = new ArrayList<Integer>();
if (i <= j) {
returnArray = filterOddHelp(x, i + 1, j);
if (x[i] % 2 != 0) {
returnArray.add(x[i]);
}
}
return returnArray;
}
}
консоли:
9
7
5
3
1
Рассмотрите возможность использования List
, когда вы не знаете, как большой массив вам понадобится.
Я отказался, потому что я не чувствую, что в этом случае раздача готового рабочего кода - это правильная вещь. Это читается как вопрос о домашнем задании, поэтому ответ был бы более полезен, если бы он описал потенциальные решения проблемы, но не остановился на самом деле, разрешив его, чтобы у аськи была возможность выяснить это сами. Имейте в виду, что вы действительно можете работать с этим человеком через 5 лет (маловероятно, но все же) - вы хотите, чтобы они были хорошими программистами вместо того, чтобы просить о помощи в stackoverflow! – JonK
- 1. Как создать новый массив из старого массива?
- 2. Создать новый массив со значениями из другого массива
- 3. PHP создать новый массив из результатов поиска другого массива
- 4. Как создать массив из другого массива?
- 5. Создать массив определенных элементов из другого массива?
- 6. создать новый массив из существующего массива
- 7. создать новый массив из старого столбца массива
- 8. Создать новый массив из существующих атрибутов массива
- 9. создать новый массив из многомерного массива
- 10. Создать массив ограниченных комбинаций из другого массива
- 11. Создать массив из другого массива и переменной
- 12. Создать новый массив из подмассивов
- 13. Новый массив из многомерного массива
- 14. Создайте новый массив с элементами, полученными из другого массива.
- 15. Создать многомерный массив из массива
- 16. Создать массив из массива
- 17. Как создать новый массив из массива, возвращаемого функцией?
- 18. как создать новый массив из 2 массива существует в PHP
- 19. Как создать новый объект из массива объектов
- 20. Как создать новый массив строк
- 21. Matlab делает новый массив ячеек из другого массива клеток fileds
- 22. Как создать новый QImage из массива поплавков
- 23. Как создать новый Arraylist из другого типа
- 24. Как создать ассоциативный массив из другого ассоциативного массива?
- 25. Как создать массив из значений ключа другого массива?
- 26. Создать массив числа появлений из другого массива в Javascript
- 27. Создать новый массив из свойств
- 28. Как отфильтровать массив и создать новый массив
- 29. Как можно было бы создать новый массив, содержащий ненулевые элементы из другого двумерного массива в MIPS?
- 30. Фильтр массив из другого массива
Вы задумывались над созданием ArrayList (который вам не нужно определять размер) для добавления элементов в. Затем вы можете легко использовать метод 'toArray()', предоставляемый классом ArrayList, который позволит вам преобразовать из массива ArrayList в массив. – Jay
@Jay Это звучит как раннее академическое упражнение, возможно, они не были введены в ArrayLists – JonK
в вашей прогаме, можете ли вы использовать другие доступные в Java коллекции? Потому что вам нужно использовать концепцию «динамический массив» в файле filterOddHelp. в Java нет такой вещи, как «динамический массив», поэтому проще всего использовать ArrayList. Если ваше назначение использовать массив только тогда, существует решение с методом System.arraycopy для достижения функциональности «динамического массива». – Vadim