2009-07-10 6 views
21

2 차원 배열은 배열의 배열이라는 것을 알고 있습니다. 당신이 할 수있는 행 얻으려면 : 각 행 이후2D Java 배열에서 열을 얻는 방법은 무엇입니까?

rowArray = my2Darray[row] 

하는 다른 크기 일 수있다, 나는 2 차원 배열에서 열을 얻기 위해 내장 아니에요 있으리라 믿고있어. 그것은 당신이 다음과 같이해야 할 것이라고 믿게합니다 :

for(int row = 0; row < numRows; row++) 
{ 
    colArray[row] = m2Darray[row][columnOfInterest]; 
} 

이것이 맞습니까? 유일한 방법입니까?

+1

당신이'colArray을 [찾으셨습니까 문자열의 끝에서 새로운 캐릭터를 추가 StringBuilder 클래스를 사용해야 행] = m2Darray [행] [columnOfInterest]; '? – ChssPly76

+0

예 고맙습니다. :) – Derrick

답변

8

2 차원 배열을 사용하도록 잠긴 경우, 예,이게 전부입니다. 그러나 가능한 경우 도움을 줄 수있는 제안 :

열 가져 오기를 처리하는 클래스로 배열을 줄 바꿈하십시오.

행운을 비네.

2

길가는 길입니다. 그러나 여러 번해야하는 경우 열에 저장하는 것이 좋습니다. (또는 두 가지)

7

커먼즈 수학은 체크 아웃 할 수있는 몇 가지 도구가 있습니다 :

double[][] data = new double[10][10]; 
BigMatrix matrix = MatrixUtils.createBigMatrix(data); 
matrix.getColumnAsDoubleArray(0); 

Commons Math Library

1

그럼 실제로 내가 주석으로이 쓰기 싶지만, 내 명성에 여전히 낮은, 그래서 나는 대답 할 필요 :

당신이 의미 추측 :

for(int row = 0; row < numRows; row++) 
{ 
    colArray[row] = m2Darray[row][columnOfInterest]; 
} 

BTW : 네가 맞다고 생각해. 더 쉬운 방법은 없습니다.

0

또 다른 방법은 열을 열로 저장하는 것입니다. 그 반대의 경우도 마찬가지입니다. 예 : 나는 똑같은 일을 할 필요가 있었고 원래는 10 줄과 2 열로 배열을 계획하고있었습니다. 이 제한 때문에, 난 그냥 내 행과 열을 바꿔서 10 열 2 행 배열을 만들었습니다. 그런 다음 array [0]을 사용하여 새 배열 (원래 배열의 열)에서 행을 가져올 수 있습니다. 물론이 배열의 작성자 인 경우에만이 유연성을 가질 수 있습니다.

하는 데 도움이

희망 ...

2
int[][] array = new int[rows][coloumn]; 

for (int i = 0 ; i < array.length ; i++) { 
    for (int j = 0 ; j < array[].length; j++) { 
     int col = array[j][i]; 
    } 
} 
-4

는 BigMatrix 클래스가없는이

int column = 3; 
double result = array[][column]; 

행운

1

에게 아파치 코 몬즈 (3.5)의 사실 최신 버전을 사용해보십시오. 이 대신 우리는 RealMatrix를 사용할 수 있습니다

double[][] data = new double[10][10]; 
RealMatrix rm = new Array2DRowRealMatrix(data); 
rm.getColumn(i); 
-2

방금 ​​우연히이 게시물을 발견했습니다. 배열 복사 또는 배열 조작과 같은 작업을 수행하는 또 다른 방법은 배열/행렬을 조 변경하는 것입니다.

은 곧

  • 말하기. 2D 배열/행렬 변환6x5 ==> 5x6 2Darray)
  • 열 배열에 대한 연산 수행
  • 다시 transpose 원래의 2D 배열로 돌아갑니다.

이 접근법은 심 조각에 사용되었습니다 - 이미지 자르기 기술

-1

당신은

StringBuilder s=new StringBuilder(); 
    for(int i=0;i<n;i++) 
     s.append(arr[i][column]); 
관련 문제