При запуске он выбрасывает массив из связанного исключения в теле первого для l oop.
Это было бы так:
for ( int i = 0 ; i < a.length; i++){
counter[a[i]] += 1;
}
У меня проблемы с видением, если бы кто-нибудь мог помочь мне, я был бы очень признателен.
ArrayIndexOutOfBoundsException
в этой банке oop означает, что вы превышаете границы a
или counter
. Из проверки видно, что вы не выходите за пределы a
(хотя вы могли бы как исключить эту возможность, так и сделать код немного чище, переключившись на улучшенный for
l oop). Единственная оставшаяся возможность состоит в том, что вы выходите за пределы counter
.
Подход, который вы реализовали, поддерживает только неотрицательные целые числа во входном массиве и требует, чтобы метод вызова метода передал верхнюю границу для значения элемента в качестве второго параметра. Если эти ограничения не выполняются, то будет сгенерировано исключение, которое вы наблюдаете.
То есть, если исключение выдается там, где вы говорите, проблема заключается в вводе.