2015-02-06 6 views
-2

나는 2 차원 배열을 가지고 있습니다. String array[][] = {{"","","","","",},{"","","","","",}}. 이 배열이 꽉 차서 크기를 조정하려고합니다. 그래서 배열은 크기가 고정되어 있으므로이 배열을 더 큰 새로운 배열로 복사하려고합니다.더 큰 배열로 2D 배열 복사

또한 사이트 주위를 검색 한 결과 System.arraycopy()과 다른 방법을 사용할 수 있지만 for 루프 만 사용하는 것이 좋습니다. 몇 가지 루프가 충분하다고 생각했습니다. 내가 뭘하려

했다 :

String[][] newArray; 
    for(int i=0; i<array.length; i++) { 
    for(int j=0; j<array[i].length; j++) 
     newArray[i][j]=array[i][j]; 
     System.out.println(newArray[i][j]); 
     System.out.println(); 
    } 

그러나 나는 컴파일 오류가 계속이 error: cannot find symbol j 말?

또한 메시지는 variable newArray might not have been initialized입니다. newArray은 코드 완성 후 어떤 크기가 될지 모르기 때문에 초기화해야합니까?

+0

전체 배열이 있습니까? 그런 다음 대신'Collection'을 사용하십시오. – Tom

+0

귀하의 질문은 무엇입니까? –

+0

왜 downvotes? 이와 비슷한 질문이 몇 가지 득표가 있습니다. 내가 내장 된 함수를 사용하고 싶지 않다는 질문을 할 때마다 나는 항상 downvoted를 얻는다. 왜 그런가? : – Robben

답변

1

질문에 대한 답은 다음과 같습니다. 두 개의 루프를 사용하여 모든 것을 더 큰 배열로 복사 할 것입니다. 이렇게하면 자신의 질문에 답하는 것 같아서 처음에는 불필요한 게시물을 렌더링하게됩니다.

또한 내장 함수가 이유 때문에 제공됩니다. 일반적으로 집에서 만든 솔루션보다 효율적이고 성능이 좋습니다.

이제 문제를 해결하십시오. 네, 당신은 절대적으로 arraycopy 내장 함수를 피하기를 원한다면 두 개의 루프를 사용할 수 있습니다. 당신이이 솔루션을 직접 지적 했으므로 아마도 어떻게 작동하는지 설명 할 필요가 없을 것입니다.

이러한 데이터 세트를 처리하는 더 좋은 방법이 있다는 것을 알고 계십시오. Tom이 언급 한 컬렉션은 동적으로 확장 할 수 있으므로 작업하기가 더 쉽습니다. 또는 데이터에서 허용되는 경우 개체의 1D 컬렉션을 선택할 수도 있습니다.

+0

두 개의 루프를 사용한다고해서 이미 적용 방법을 알고 있다는 의미는 아닙니다. 적용하는 데 어려움이 있습니다. 내장 된 기능은 훌륭하지만 멍청한 놈입니다. 나 먼저 기본을 이해해야한다. – Robben

+0

아, 문제 없습니다. 자, 저는 현재 모바일을 사용하고 있고 Java는 녹슬었기 때문에 전체 코드 예제를 적어 둘 수는 없습니다. 그러나 나는 기본적인 생각을 설명 할 수있다. 너를 위해 내가 편집 해 줄게. – gvkempen

+1

내 휴대 전화에서 모든 것을 잃어 버렸습니다. 나는이 질문에 내일 체크인 할 것이고, 아무도 그때까지 답을주지 못한다면 어떻게 할 지에 대한 자세한 설명을 줄 것이다. 나는 지금 더 많은 도움이되지 못해 미안하다. – gvkempen

관련 문제