2014-01-22 1 views
-1

2 차원 배열 a [n] [n]으로 취한 n × n 행렬의 행 벡터로 별도의 1D 배열을 만들고 싶습니다. 어떻게 Java에서 그것을 할 ???Java에서 2D 배열의 행으로 요소를 포함하는 별도의 1D 배열을 만드는 방법은 무엇입니까?

내가 뭘 하려는지는 그 크기가 nXn 인 2 차원 배열을 가지고 있는데, 여기서 n은 런타임에 지정되고 모든 행 요소를 오름차순으로 정렬하려고합니다. 그러면 가능한 방법을 찾을 수 없습니다. 그렇게 해. 그 때문에 나는 행 요소를 분리하고 다른 배열에 별도로 저장해야 할 것이라고 생각했습니다. 하지만 어떻게 생성 된 배열이 행 요소를 저장하도록 매번 새로운 루프를 내부 루프로 생성합니까? 그것을 제안 할 수 있습니까? 아니면 다른 방법을 제안 해 줄 수 있습니까?

+0

을 시도 무엇을 .. ?? –

답변

0

N X N 행렬은 이미 N 1D 배열 각각 함유 N 요소들의 어레이이다. 당신은 아주 쉽게 이러한 행렬의 각 행을 정렬 할 수 있습니다

int[][] matrix = new int[][] { 
    new int[] { 1, 2, 3 }, 
    new int[] { 4, 5, 6 }, 
    new int[] { 7, 8, 9 } 
}; 

: 다음 3 × 3 배열을 고려 U는

public static <T> void sortMaxtrixRows(T[][] mat) { sortMatrixRows(mat, null); } 

public static <T> void sortMatrixRows(T[][] mat, Comparator<? super T> comp) { 
    for (int i = 0; i < mat.length; i++) { 
     Arrays.sort(mat[i], comp); 
    } 
} 
+0

덕분에 많은 도움이되었습니다. 많은 도움이되었습니다. !!!! – user3221188

0

당신의 질문이 완전히 나오는지 모르겠지만, 내가 원하는 것에서는 1 차원 배열에 2 차원 배열의 각 행을 갖는 것이 좋습니다. 이 경우 크기의 1 차원 배열 = 2 차원 배열의 행 수를 가질 수 있습니다. 1d 배열의 각 항목에는 크기가 2d 배열에있는 열의 수를 갖는 다른 배열이 들어 있습니다. 그러나 가능한 경우 동일한 데이터를 기본적으로 포함하는 새로운 데이터 구조를 나타내지 않도록 가능한 경우 2D 배열에서 데이터를 직접 추출해야합니다.

0
int [] ONE_D_ARAAY[]=new int[n*n]; 
int [][] TWO_D_ARRAY=new int[n][n]; 
int index=0; 
for(int x=0; x<n ;++n) 
    for(int y=0; y<n ++y) 
    ONE_D_ARRAY[index++]=TWO_D_ARRAY[x][y]; 
+0

그게 나를 위해 작동하지 않습니다 내가 별도로 행 요소만을 가지고 싶어. 모든 행 요소를 별도로 분리하여 모든 행 요소를 오름차순으로 정렬 할 수 있습니다. 위에서 언급 한 것을 수행하면 나중에 정렬 알고리즘을 적용하여 2 차원 배열의 모든 요소를 ​​행 요소가 아닌 오름차순으로 정렬합니다. – user3221188

관련 문제