int [] [] test = {
{1, 3, 5, 15, 75},
{2, 4, 6},
{7, 8, 9 , 12, 14, 19, 21, 26},
};
test[1] = new int [0]; // Что это вообще делает?)
int j = test[1].length; // Почему длина, то 1, то 2.
System.out.println(j);
Вот расписал я двумерный массив. Дал каждой нумерации массива определенное число. Во-первый, почему длина массива какая-то кривая, что с ней не так? Во-вторых 6 строка кода, как я понимаю, меняет строки массива, а куда тогда "исчезает" другая строка, где уже вписаны цифры? Объясните подробнее 😀Captin
39 уровень
Помогите понять массив
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
VladimirMaster
3 апреля 2023, 04:17
Этот код объявляет и инициализирует двумерный массив test, содержащий три одномерных массива различных размеров.
Строка test[1] = new int [0]; создает новый пустой одномерный массив и заменяет второй элемент test на этот новый массив. Теперь второй элемент test имеет нулевую длину.
Строка int j = test[1].length; присваивает переменной j длину второго элемента test, который был только что заменен на пустой массив. Так как длина пустого массива равна 0, то j будет равно 0.
Поэтому System.out.println(j); выведет 0.
Ответ на вопрос "Почему длина, то 1, то 2" зависит от того, как код был изменен между исходным состоянием и текущим состоянием. В оригинальном коде длина второго элемента была равна 3, но после строки test[1] = new int [0]; она стала равна 0. Если ты видишь разные значения для длины, то, скорее всего, было внесено дополнительное изменение кода.
+2
hidden #598481
2 апреля 2023, 21:24
Двумерный массив - это массив массивов. Каждый элемент такого массива тоже является массивом (массивом чисел).
test - это двумерный массив, test[0] (test[1], test[2]) - это элементы этого массива, массивы чисел.
Длина массива test равна трём, потому что в этом массиве три элемента (три массива содержатся в двумерном массиве).
Длина каждого из одномерных массивов у каждого своя. test[0].length = 5, test[1].length = 3, test[2].length = 8, потому что в каждом из этих массивов содержится соответствующее число элементов.
Эта команда присваивает элементу массива test с индексом 1 значение new int[0], то есть в твой исходный массив вместо второго элемента - массива {2, 4, 6} - записывается массив длиной ноль (пустой массив).
Получается, что массив test становится таким:
+1