2014-11-21 4 views
0

이 코드를 작동 시키려면 힘들어합니다. 일어날 일은 2d arraylist를 만들고 그 다음에 2darraylist에게 arraylist를 추가하는 것입니다. 그런 다음 사용자 입력을 받아 2 차원 배열에 추가하고이를 토큰 화합니다. 그런 다음 토큰 화 된 입력을 출력합니다. 출력은 첫 번째 줄에 첫 번째 arrayList가 표시되고 두 번째 줄에는 두 번째 arraylist의 내용이 표시되도록해야합니다. 임 5.2d 배열의 내용 출력하기

String transState; 
    trans = new ArrayList<List<String>>(5); 
    ArrayList<String> t = new ArrayList<String>(5); 
    for (i = 1; i < 5; i++) { 
    trans.add(t); 
    } 
    for (i = 1; i < 5; i++) { 

     for (j = 0; j < 5; j++){ 
      transState = s.nextLine(); 
      trans.get(i).get(j).add(transState); 
      trans.get(i).get(j).split(transState); 
     } 
    } 
    for (i = 0; i < 5; i++) { 
     for (j = 0; j < 5; j++) { 
      System.out.println(trans.get(i).get(j)); 
     } 
    } 
+0

지금까지 내가 할 수있는 :이 외에도, 당신은 여기에 문제가있는 것 같이

trans.get(i).get(j).add(transState); 

그것은 또한

trans.get(i).add(transState); //trans.get(i) returns List<String> 

해야을,이 라인은 이해되지 않는다 'trans.get (i) .get (j)'는 IndexOutOfBoundsException을 던져야합니다. 왜냐하면 * inner *리스트 (즉, 't')는 모두 비어 있습니다. –

답변

0

문제처럼 보인다, 크기 5 크기 오류 메시지 outofbound를 얻는 것은 여기에 있습니다 : 당신은 당신이에 다른 ArrayList의를 추가해야 할 때 같은 ArrayList 여러 번 추가하는

ArrayList<String> t = new ArrayList<String>(5); 
for (j = 0; j < 5; j++) 
    trans.add(t); 

이 같은 주요 ArrayList :

for (j = 0; j < 5; j++) { 
    ArrayList<String> t = new ArrayList<String>(5); 
    trans.add(t); 
} 

trans.get(i).get(j).split(transState); 
+0

Ive는 귀하의 충고에 따라 변경했으며, 5 자릿수 인덱스 5 범위 밖의 오류가 발생했습니다. – Will

+0

현재 코드는 어떻게 생겼습니까? –

+0

실제로 내 실수. 나는 당신의 코드를 잘못 복사했다. 좋은 방법 덕분에 당신의 방법 – Will