#java #arrays
Вопрос:
Пытаюсь пересмотреть свои концепции для массива Java и распечатать после генерации чисел от минимального до максимального значения и пытаюсь извлечь числа, хранящиеся в массиве, однако получаю их равными нулю, однако длина по-прежнему показывает 10. Я думаю, что ответ заключается в том, что как только массив определен, мы не можем им манипулировать и, возможно, потребуется использовать ArrayList, может ли кто-нибудь подтвердить и пролить некоторый свет на это
public static void main(String[] args) throws Exception { // Define the array of numbers from 1 to 10 int minInput = 0; int maxInput = 10; int[] newAr = null; for (int in = minInput; in lt; maxInput; in ) { // create a new array with numbers with max value newAr = new int[maxInput]; // add 1 values to the array newAr[in] = in; System.out.println("printint array" newAr[in]); } System.out.println(newAr.length); // find values in array for (int i : newAr) { System.out.println(i); } }
Комментарии:
1. Почему вы создаете новый массив на каждой итерации первого цикла? Это звучит очень нелогично
2. Это хорошая уловка, это должно быть вне цикла, и это работает
Ответ №1:
Что-то вроде этого
// Define the array of numbers from 1 to 10 int minInput = 0; int maxInput = 10; // create a new array with numbers with max value int[] newAr = new int[maxInput]; for (int in = minInput; in lt; maxInput; in ) { // add 1 values to the array newAr[in] = in; System.out.println("printint array " newAr[in]); }
Проблема с кодом из вопроса заключается в следующем: внутри цикла for вы создаете новый массив. Просто переместите его перед петлей.