JAVA Basic 강의자료] 배열의 복사

 

JAVA Basic 강의자료] 배열의 복사

 

 

 

 

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

배열의 복사

 

 

*배열 복사의 의미 및 방법
  -객체는 값의 할당을 원칙으로 함.
  -배열은 객체임. 일반적인 방법으로 복사되지 않음.
  -배열 복사의 두 가지 방법
     :System.arrayCopy()메서드 이용 

 

 

 

 

-Object클래스의 clone()메서드 이용
  :메모리를 복사하여 Object형 객체 리턴
  :원래 타입으로 다운캐스팅 필요 

 

 

 

 

 

*System.arrayCopy()복사
  -System.arrayCopy()메서드를 이용한 배열의 복사

 

 

<소스코드>

 


// ArrayCopyTest.java
public class ArrayCopyTest {
   public static void main(String[] args) {
   int[] mydream  = new int[]{5, 4, 6, 9, 7, 9};
      int[] mytarget = {100, 200, 300, 400, 500, 600,700};
      System.arraycopy(mydream, 2, mytarget, 3, 4);
      for(int i=0; i<mytarget.length; i++) {

         System.out.println("mytarget["+i+"] : " + mytarget[i]);
      }
   }
}

 

*배열의 길이를 알아내는 방법
  -배열이름.length
  -예) Mytarget.length
 

*clone()을 사용한 배열복사
  -객체를 복사하는 clone()메서드를 사용한 배열 복사

 

 

<소스코드>

// ArrayCloneTest.java
public class ArrayCloneTest {
   public static void main(String[] args) {
      int[] mydream  = new int[]{5, 4, 6, 9, 7, 9};
      int[] mytarget = (int[])mydream.clone();  
      for(int i=0; i<mytarget.length; i++)
      {
         System.out.println("mytarget["+i+"] : " + mytarget[i]);
      }
   }
} 

 

==================

 

 

*Clone()메서드로 객체복사 시 주의점
  C-loneable인터페이스 구현필요
   :배열은 이미 구현되어 쓸 구현 필요 없음
 

 

*배열의 길이를 알아내는 방법
  -배열이름.length
  -예) Mytarget.length

+ Recent posts