자바 Java

[자바의정석] 배열

leexx 2023. 2. 12. 21:12

배열

배열이란

  • 같은 타입 의 여러 변수를 하나로 묶은 것

 

배열의 선언

int[] arr = new int[3]; // (1) 선언
int[] arr = new int[]{10, 11, 12}; // (2) 선언 및 초기화
int[] arr = {10, 11, 12}; // (3) 선언 및 초기화

참조변수 이므로 new 키워드로 선언해준다.

 

배열의 복사

for 문으로 복사

int origin[] = new int[]{10, 11, 12};
int temp[] = new int[3];

// (1) for 문으로 복사
for(int i=0; i<origin.length; i++) {
  temp[i] = origin[i];
}

System.out.println(Arrays.toString(temp));

 

System.arraycopy() 로 복사 👍🏻

system.arraycopy(originArray, originStartIndex, newArray, newArrayStartIndex, amount);
// system.arraycopy(원래 배열의, idx 에서, 새로운 배열의, idx 로, n 개의 데이터를 복사)
int origin[] = new int[]{10, 11, 12};
int temp2[] = new int[3];
System.arraycopy(origin, 0, temp2, 0, origin.length);

System.out.println(Arrays.toString(temp2));

 

전체 코드

더보기
import java.util.*;

class Hello {
    public static void main(String args[]) {
        int origin[] = new int[]{10, 11, 12};
        int temp[] = new int[3];

        // (1) for 문으로 복사
        for(int i=0; i<origin.length; i++) {
            temp[i] = origin[i];
        }

        System.out.println(Arrays.toString(temp));



        // (2) System.arrcopy() 를 이용한 배열의 복사 (추천) 
        int temp2[] = new int[3];
        System.arraycopy(origin, 0, temp2, 0, origin.length);

        System.out.println(Arrays.toString(temp2));

    }
}

 

배열의 출력

  • for
  • Arrays.toString
import java.util.*;

class Hello {
    public static void main(String args[]) {
        int origin[] = new int[]{10, 11, 12};

        // myArray.toString (X)
        System.out.println(origin.toString()); // 주소 [I@75a1cd57

        // Arrays.toString (O)
        System.out.println(Arrays.toString(origin)); // 값 [10, 11, 12]

    }
}