2015-01-17 6 views
-2

두 배열 a1과 a2, 두 개의 시작 인덱스 i1과 i2 및 길이 l을 매개 변수로 취하고 인덱스 i1에서 시작하는 a1의 첫 번째 요소를 인덱스에서 시작하는 배열 a2로 복사하는 copyRange라는 메서드를 작성해야합니다. i2. 예를 들어배열을 복사하고 길이를 늘리시겠습니까?

주어진 두 배열 :

int[] a1 = {1, 2, 3, 4, 5, 6}; 
int[] a2 = {21, 22, 23, 24, 25, 26}; 
copyRange(a1, a2, 0, 3, 2); 

는 이전 호출 후 (A2)의 내용이 될 것이다 {21, 22, 23, 1, 2, 26}. 매개 변수의 값이 유효하고 배열이 데이터를 보유 할만큼 충분히 크다고 가정 할 수 있습니다.

이 문제를 시작하는 방법에 대해 매우 혼란 스럽습니다. 감사합니다.

+0

여기에 집안 일을하는 방법을 묻지 마십시오. – yurgis

답변

0

정확한 내용의 Java 라이브러리 method이 있습니다.

이처럼 사용할 수 있습니다

int arr1[] = {1, 2, 3, 4, 5, 6}; 
int arr2[] = {21, 22, 23, 24, 25, 26}; 
System.arraycopy(arr1, 0, arr2, 3, 2); 
//copies 2 items from arr1, starting_index 0 to arr2, starting_index 3 
0

당신은 copyRange(a1, a2, 0, 3, 2);

대한 메소드 서명을 정의하여 시작해야 당신이 그렇게하는 int 및 해당 매개 변수의 배열을 반환 알고, 쓰기 그

public ??? copyRange(int a1[],...) { 

} 

배열은 Java에서 참조로 사용되지 않으므로 a1 및 a2의 값을 변경하면 안됩니다. 대신 a2의 복사본을 만든 다음 a1의 요소를 삽입하고 복사본을 반환해야합니다.

System.arraycopy은 Java에서 배열을 처리하는 내장 메서드이며 매우 빠릅니다. 당신은 아마 그것을 잘 활용할 수 있습니다.

관련 문제