반응형
○ 배열의 복사
- 데이터 복사(깊은 복사) : 실제 요소로 들어있는 값에 대한 복사로 원본을 수정해도 복사본에 영향을 미치지 않는다.
public class ArrCopy {
public static void main(String[] args) {
int[] nums = {10, 20, 30, 40, 50}; //-- 배열 원본
int[] copys2 = copyArray(nums); //-- 깊은 의미의 배열 복사 수행
// (사용자 정의 메소드 호출)
int[] copys3 = (int[])nums.clone(); //-- 깊은 의미의 배열 복사 수행
// (자바 제공 → clone() 메소드)
// 배열을 반환하는게 아니라 객체를 반환한다.
// 원본 배열 요소의 수정 발생~!!!
nums[1] = 2;
// 결과 확인
System.out.println("nums[1] : " + nums[1]);
//--==>> nums[1] : 2
System.out.println("copys2[1] : " + copys2[1]);
//--==>> copys2[1] : 20
System.out.println("copys3[1] : " + copys3[1]);
//--==>> copys3[1] : 20
}
// 매개변수로 int 배열 타입을 넙겨받아 이를 복사한 후
// 복사한 배열을 반환하는 기능을 가진 메소드
public static int[] copyArray(int[] os) {
// 매개변수로 넘겨받은 배열(os)
// 즉, 원본 배열 만큼의 배열방(메모리 공간)을 확보한
// 복사할 배열방 생성
int[] temp = new int[os.length];
// 각각의 원본 배열(os)에 담겨있는 요소들을 복사 배열(temp)에 담아내기
for(int i=0;i<os.length;i++) {
temp[i] = os[i];
}
// 복사한 배열(temp) 반환
return temp;
}
}
[실행 결과]
nums[1] : 2
copys2[1] : 20
copys3[1] : 20
계속하려면 아무 키나 누르십시오 . . .
반응형
'스터디 > 예제' 카테고리의 다른 글
정보은닉/접근제어자/getter/setter/java (0) | 2020.02.21 |
---|---|
배열의 복사/주소값 복사/얕은 복사/java (0) | 2020.02.20 |
Random 클래스 활용 (0) | 2020.02.20 |
입력받은 인원 수 만큼 이름과 전화번호를 입력받아 전체 출력하기/java/배열 (0) | 2020.02.09 |
A ~ Z 까지 배열로 담아 출력하기/java (0) | 2020.02.09 |