2014년 3월 11일 화요일

JAVA - 배열 복사 ArrayCopy , 객체 배열

▣ 기본 데이터 타입을 이용한 배열 클래스의 예
◈ byte[]
◈ int[]
◈ long[]
◈ float[]
◈ double[]
◈ char[]

▣ 클래스를 이용한 배열 클래스의 예
◈ String[]
◈ Image[]

기본 데이터 타입뿐만 아니라 클래스에도 브래킷([])를 붙여서 새로운 배열 데이터 타입을 만들 수 있습니다. 결론적으로 배열 데이터 타입은 브래킷([])이 붙은 새로운 형태의 클래스입니다. 배열 데이터 타입을 아예 배열 클래스라고 부르겠습니다. 배열 클래스는 new를 이용해서 객체를 생성하며, 배열의 개수를 지정하기 위해서 브래킷([]) 안에 첨자를 사용합니다.

--------------------- 배열 복사 ----------------------------------------

public class ArrayTest {
        int arr[] = new int[10];
    int[] source  = new int[]{546979};
    int[] target = {100200300400500600,700};
   
    public void arrayCopy1()
    {
        // System.arraycopy(); 를 이용한 선택 부분 복사
        // source의 2번째(0,1,2번째) 요소부터 4개가 복사
        // target에서는 3번째(0,1,2,3번째) 자리에 복사
            System.arraycopy(source, 2, target, 34);
            for(int i=0; i<target.length; i++) {
                System.out.println("target["+i+"]:" + target[i]);
            }
            System.out.println();
                int[] source  = new int[]{546979};
                //clone()을 이용한 메모리 모두 복사
                int[] target = (int[])source.clone(); // 다운 캐스팅    
       for(int i=0; i<target.length; i++){
            System.out.println("target["+i+"] : " + target[i]);
        }
    }

        public static void main(String[] arr)
        {
                ArrayTest at = new ArrayTest();
                at.arrayCopy1();
        }
}


--------------------- 객체 배열 ----------------------------------------

public class ArrayTest {
    private String name;
    private String kind;
 
    public ArrayTest(String name, String kind) {
        this.name = name;
        this.kind = kind;
    }
    public String toString() {
        return this.kind + ":" + this.name;
    }
        public static void main(String[] arr)
        {
        //1. 객체배열의 생성
        ArrayTest[] dog = new ArrayTest[5];
        for(int i=0; i<dog.length; i++)  
        {
            System.out.println("Dog[" + i + "] : " + dog[i]);
        }
     
        //2. 객체배열의 참조변수에 메모리할당
        dog[0] = new ArrayTest("쫑쫑이","불독");
        dog[1] = new ArrayTest("워리","똥개");
        dog[2] = new ArrayTest("개똥이","진도개");
        dog[3] = new ArrayTest("발리","푸들");
        dog[4] = new ArrayTest("투덜이","잡종");      
        for(int i=0; i<dog.length; i++)
        {
                System.out.println("Dog[" + i + "] : " + dog[i]);
        }
        }
}
/*
Dog[0] : null
Dog[1] : null
Dog[2] : null
Dog[3] : null
Dog[4] : null
Dog[0] : 불독:쫑쫑이
Dog[1] : 똥개:워리
Dog[2] : 진도개:개똥이
Dog[3] : 푸들:발리
Dog[4] : 잡종:투덜이
*/

댓글 없음:

댓글 쓰기