에릭.
45
2021-08-16 00:01:17 작성 2021-08-16 00:06:21 수정됨
3
156

Java compile error 도대체 왜?


List<List<integer>> test = new ArrayList<>();

선언뒤 데이터 오지게 집어넣고,


System.out.println(test.get(0).size());  >> 100 정상출력

System.out.println(test.get(0).get(0));  >> error (Index 0 out of bounds for length 0)


에러가 아니라, 첫번째 list의 또 첫번째 list의 int값이 찍혀야되는거아닌가요?


왜자꾸 Index 0 out of bounds for length 0 에러가 날까요?

0
  • 답변 3

  • 해리아범
    295
    2021-08-16 08:55:59

    리스트의 첫번째 리스트의 첫번째 요소를 가져오라고 하고 있는데, 데이터는 그냥 리스트로만 넣으셨네요. 당연히 크기가 0인데 첫번째 요소를 가져오라고 하니 에러가 나지요

  • iMac 0
    441
    2021-08-16 11:05:24 작성 2021-08-16 11:06:11 수정됨

    100 출력된게 넣으신 데이터 개수죠?

    제대로 찍혀야되는게 맞는것같은데 데이터 넣는부분도 함 보여주시면 좋을것같아요


    간단하게 테스트해봐도 되거든요 ㅎㅎ

           List<List<Integer>> test = new ArrayList<>();

            ArrayList<Integer> arr1 = new ArrayList<>();

            ArrayList<Integer> arr2 = new ArrayList<>();

            ArrayList<Integer> arr3 = new ArrayList<>();

            arr1.add(0);

            arr1.add(1);

            arr1.add(2);

            arr2.add(0);

            arr2.add(1);

            arr2.add(2);

            arr3.add(0);

            arr3.add(1);

            arr3.add(2);

            test.add(arr1);

            test.add(arr2);

            test.add(arr3);

            System.out.println(test.get(0).size()); // 3

            System.out.println(test.get(0).get(0));  // 0

  • 신히
    830
    2021-08-16 17:18:35 작성 2021-08-16 17:18:47 수정됨

    오류가 나는 검증코드가 필요합니다.

    import java.util.*;

    class Main {
        static public void main(String []args) {
            List<List<Integer>> test = new ArrayList<>();
            List<Integer> arr = new ArrayList<>();

            for (int i=0; i<100; i++) {    
                arr.add(i);
            }
            test.add(arr);
            System.out.println(test.get(0).size());
            System.out.println(test.get(0).get(0)); 
        }
    }


    100
    0


    🚀 코드 테스트 해보기

  • 로그인을 하시면 답변을 등록할 수 있습니다.