2013-03-21 2 views
0

제 2 년차 대학 소프트웨어 엔지니어링 프로젝트를하고 있고 문제가 발생했습니다. 나는 Java 언어 (및 프로그래밍 전반)에 상당히 익숙하기 때문에 구문을 잘 이해하지 못할 가능성이있다.ArrayList를 배열 배열로 어떻게 변환합니까?

Object 형식의 배열 배열을 반환하는 데 사용할 메서드가 있습니다. 이것은 스윙 JTable에서 사용됩니다. 따라서 배열의 각 요소 (배열 자체)는 테이블의 행이며 '내부'배열의 요소는 해당 행의 각 열 값입니다.

코딩하는 동안 얼마나 많은 열이 있는지 알지 못하므로 다른 배열에 의존하는 배열 배열을 생성하는 메서드를 만들었습니다.

내 코드입니다 :

public Object[][] getData(ArrayList<IModule> modules) { 

    ArrayList<String[]> data = new ArrayList(); 

    for (Iterator<IModule> m = modules.iterator() ; m.hasNext();) { 
     IModule module = m.next(); 
     for (Iterator<ICoursework> c = module.getCoursework().iterator() ; c.hasNext() ;) { 
      ICoursework coursework = c.next(); 
      String[] row = new String[6]; 

      row[0] = module.getModuleTitle(); 
      row[1] = module.getModuleCode(); 
      row[2] = coursework.getTitle(); 
      row[3] = coursework.dateToString(); 
      row[4] = coursework.getLecturer().getFirstName() 
        + coursework.getLecturer().getSecondName(); 
      row[5] = getSubmissionDetails(coursework, row); 

      data.add(row); 
     } 
    } 
    data.trimToSize(); 

    return data.toArray(); 
} 

나는 객체 [] []를 반환 할 필요 어디에 ArrayList.toArray() 메소드가 객체 []를 반환으로이 분명 컴파일되지 않습니다.

배열의 ArrayList가 있었기 때문에 이해합니다.이 배열을 배열로 변환해야합니다. 그러나 그렇지 않습니다.

도움이 될만한 답변을 게시 할 수 있다면. 고맙습니다.

+3

[4372439의 중복 (http://stackoverflow.com/questions/4372439/convert-arraylistobject-to-object?rq=1는) – BevynQ

답변

1

당신은 그렇게 할 수 없습니다 return data.toArray(new String[][]);

+0

첫째는 배열 차원이 필요하다고 말한다. 그러나 임의의 차원에 넣을 때조차도 Object [] []가 필요하지만 String []을 찾습니다. –

+0

죄송합니다. return data.toArray (new String [] [])' –

+0

감사합니다. 그래도 여전히 치수를 묻습니다. 나는 다차원 배열에 새로운 무엇 치수가 있어야합니다. 현재 새로운 String [data.size()] [] 있습니다. 그게 맞을까요? –

0

을보십시오. 시도 :

public Object[][] getData(ArrayList<IModule> modules) { 

    ArrayList<String[]> data = new ArrayList<String[]>(); 

    for (Iterator<IModule> m = modules.iterator() ; m.hasNext();) { 
     IModule module = m.next(); 
     for (Iterator<ICoursework> c = module.getCoursework().iterator() ; c.hasNext() ;) { 
      ICoursework coursework = c.next(); 
      String[] row = new String[6]; 

      row[0] = module.getModuleTitle(); 
      row[1] = module.getModuleCode(); 
      row[2] = coursework.getTitle(); 
      row[3] = coursework.dateToString(); 
      row[4] = coursework.getLecturer().getFirstName() 
        + coursework.getLecturer().getSecondName(); 
      row[5] = getSubmissionDetails(coursework, row); 

      data.add(row); 
     } 
    } 

    Object[][] arr = new Object[data.size()][6]; 

    for (int i = 0; i < data.size(); i++) { 
     String[] strings = data.get(i); 
     for (int j = 0; j < strings.length; j++) { 
      arr[i][j] = strings[j]; 
     } 
    } 

    return arr; 
} 
관련 문제