Надеюсь, название объясняет, чего я хочу. Я хочу набор чисел 1-12 в случайном порядке, но не получить нулевой результат.
Вот мой код:
Integer[] arr = new Integer[12];
for(int i = 1; i < arr.length; i++)
{
arr[i] = i+1; //With this not being i+1, I get 0-11. Like this, I get null-12 and no 1.
if (arr[i] == null)
{
arr[i] = 1;
}
}
Collections.shuffle(Arrays.asList(arr));
System.out.println(Arrays.asList(arr));
И вот что я получаю как результат:
[null, 5, 3, 10, 7, 2, 9, 4, 6, 12, 8, 11]
Как я могу преобразовать значение null, потому что оператор if if ничего не делает?
Вы не инициализируете первый элемент в вашем массиве. Начните с я = 0 в вашем цикле, например:
for(int i = 0; i < arr.length; i++)
Arrays
основаны на 0 based
, поэтому первые элементы должны начинаться с индекса 0
, а не 1
Поэтому попробуйте изменить свой код:
for(int i = 0; i < arr.length; i++)
для получения более подробной информации о массивах.
запустите цикл for 0
for(int i = 0; i < arr.length; i++)
Начните с 0 вместо 1
for(int i = 0; i < arr.length; i++)
Вы инициализируете переменную цикла я до 1, в результате массив arr [0] никогда не получает значение, которое по умолчанию равно null. Ваш цикл должен быть для (int я = 0; я <arr.length; i++)