2016-07-14 5 views
1

배열은 Java에서 일정한 수의 요소를 갖기로되어 있지만이 외에도 배열은이 응용 프로그램에서 나에게 매우 도움이되었으므로 다른 데이터 구조를 사용합니다.행렬/2 차원 배열에 새 열 추가하기

내 문제는 2 차원 배열에 새 열을 추가하는 것 같습니다. 지금까지 내가 가진 :

String[][] tempArray = new String[array.length][array.length+1]; 

내가 다음 tempArray 긴 하나의 여분의 열을 내부에 일정한 배열 array의 모든 요소를 ​​넣어.

내가 할 수없는 일은 index의 색인에 새 열을 넣는 것입니다.

어떻게하면됩니까? 감사!

답변

1

배열은 본질적으로 동적이 아니므로 알 수있는 한 배열을 열을 추가 할 수 없습니다. 잠재적 인 해결 방법으로 할 수있는 일은 하나의 추가 열이있는 다른 배열을 만들고 모든 값을이 열에 복사하는 것입니다.

int index = 7; 
    String[][] array = new String[5][10]; 

    String[][] tempArray = Arrays.copyOf(array, array.length + 1); // New array with row size of old array + 1 

    tempArray[array.length] = new String[array[index].length]; // Initializing the new row 

    for(i=tempArray.length; i>=index; i--) 
    { 
     tempArray[i] = tempArray[i-1]; 
    } 

    tempArray[index] = new String[array[index].length]; 

나는 다른 데이터 구조를 사용하는 것을 회피하지만, 마음이 바뀌면 ArrayList를 사용해보십시오.

+0

그게 내가 원하는거야. 값을 더 큰 배열로 이동하십시오. 중간에 빈 컬럼을위한 공간을 만들기 위해 모든 숫자를 배열의 오른쪽으로 이동시키는 알고리즘이 필요합니다. – 26hmkk

+0

그리고'index'의 새로운 컬럼을 비워두기를 원합니까? 또는 마지막 열을 비워 두시겠습니까? –

+0

네, 새로운 빈 컬럼이'index' 위치에 있도록하고 싶습니다. – 26hmkk