Я думаю, это потому, что массивы Java работают немного иначе, чем ожидалось. Вы инициализируете shatner
в [1] [1], что означает что-то вроде {{0},{0}}
в памяти.
Однако затем вы назначаете целое число первому элементу, превращая его в {{0,0,0,0},{0}}
в памяти, поэтому Java обращается к вновь назначенному индексу.