[에러노트] ArrayIndexOutOfBoundsException 에러

hyewon jeong·2022년 12월 27일
0

에러노트

목록 보기
4/46
post-thumbnail

이전 사용한 블로그 TIL 퍼옴

1 발생

프로그래머스 알고리즘 문제 푸는 시점에서

요즘 배열 문제를 풀 때 빈번히 볼 수 있는 에러 ArrayIndexOutOfBoundsException 에러입니다.

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0

at Solution.solution(Unknown Source)

at SolutionTest.lambda$main$0(Unknown Source)

at SolutionTest$SolutionRunner.run(Unknown Source)

at SolutionTest.main(Unknown Source)

2 코드

class Solution {
    public int[][] solution(int[] num_list, int n) {
        int[][] answer = {};
        int iIndexLength =  num_list.length/n;
        int index = 0;
        
        for(int i= 0;i < iIndexLength ; i++){
            for(int j=0 ; j < n;j++){
                answer[i][j] =  num_list[index];
                index += 1;
            }
        }
        return answer;
    }
}

3 해결

  • 구글링을 해보니 인덱스가 배열의 크기보다 크거나 음수가 나온다면 예외를 발생시킵니다.

  • 에러코드를 자세히 살펴보니 0의 크기라고 그러길래 코드를 자세히 살펴보니 배열도 제대로 선언을 하지않고, 배열을 사용 함을 볼 수 있습니다.
answer = new int[iIndexLength][n];  

그래서


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0

오류 발생

class Solution {
    public int[][] solution(int[] num_list, int n) {
        int[][] answer = {};
        int iIndexLength =  num_list.length/n;
        int index = 0;
        answer = new int[iIndexLength][n];
        for(int i= 0;i < iIndexLength ; i++){
            for(int j=0 ; j < n;j++){
                answer[i][j] =  num_list[index];
                index += 1;
            }
        }
        return answer;
    }
}
profile
개발자꿈나무

0개의 댓글