2010-02-24 7 views
2

배열에 배열을 저장하고 싶지만 정확히 어떻게 해야할지 모르겠습니다.다차원 배열을 처리하는 방법은 무엇입니까?

내가 원하는 것은 다음과 같습니다. 배열과 같은 배열이 있습니다.

이 배열에 항목을 추가하려는 방법에서이 항목도 배열이됩니다.

예를 들어,이 내 첫 번째 배열에있을 것입니다 : (메소드가 호출 될 때 그것의 모든 항목이 추가됩니다)

{1,2},{2,3},{5,6} 

감사합니다. 당신이 할 수있는 모든 것을 할당 예를 들어 http://www.ensta.fr/~diam/java/online/notes-java/data/arrays/arrays-2D-2.html

, :

답변

5

는 참조 배열을 순수하게하려면

int[][] tri; 

//... Allocate each part of the two-dimensional array individually. 
tri = new int[10][];  // Allocate array of rows 
for (int r=0; r < 2; r++) { 
    tri[r] = new int[2]; // Allocate a row 
} 

을하지만, 당신이 다른 사용하는 것이 더 낫다? 추가 작업을 지원해야하는 경우 List, ArrayList 등과 같은 데이터 구조는 최상위 "배열"을 보유합니다. 그렇게하면 배열을 다시 할당하는 대신에 배열을 추가 할 수 있습니다. Sean의 솔루션이 이에 적합합니다.

1
void append(List<int[]> arrays) { 
    int[] newItem = ...; 
    arrays.add(newItem); 
} 

... 

List<int[]> arrays = new ArrayList<int[]>(); 
... 
// then call append() to do your appending 
append(arrays); 
... 
// now get the array of arrays out of it 
int[][] as2DArray = arrays.toArray(new int[0][]); 
+0

감사합니다. 질문이 있습니다. 배열이 이미 메인 배열에 있는지 어떻게 확인할 수 있습니까? – Robert

+0

배열을 호출하여 배열 (theIntArray); 주 컬렉션에 중복 항목이 없는지 확인하려면 ArrayList 대신 LinkedHashSet을 사용하십시오. LinkedHashSet은 순서를 유지하며 중복 항목을 허용하지 않습니다. ArrayList는 순서를 유지하지만 중복 된 항목을 허용합니다. –

관련 문제