본문 바로가기

기타/java 자료구조와 알고리즘

[JAVA] 배열 선언 및 초기화, 복사

728x90

오늘은 자바에서 배열을 선언하고 초기화하는 방법과 복사하는 두 가지 방법에 대해 알아보도록 하겠습니다.

 

1. 선언 방법

자료형 [] 변수명 ={데이터}를 해주면 선언과 동시에 초기화할 수 있습니다.

아래 코드를 참조해주세요.

 

public class javaarray{
	public static void main(String[] args) {
		int[] intarray= {1,2,3,4,5};
		System.out.println(intarray);
		for(int i=0; i<intarray.length;i++) {
			System.out.println(intarray[i]);
		}
	}
}

 

좀 더 명시적으로 변수를 선언하고 초기화하는 방법은 

자료형 [] 변수명 = new 자료형[] {데이터}를 넣어주는 것입니다.

 

public class javaarray{
	public static void main(String[] args) {
		int[] intarray= new int[] {1,2,3,4,5};
		System.out.println(intarray);
		for(int i=0; i<intarray.length;i++) {
			System.out.println(intarray[i]);
		}
	}
}

 

위의 코드를 실행하면 아래와 같이 저장됩니다.

intarray라는 변수는 1,2,3,4,5 배열을 참조합니다.

intarray를 출력하면 참조만 나오고 데이터는 나오지 않습니다.

쉽게 말하면 주소를 저장하는 것입니다.

인덱싱을 하면 아래와 같이 1,2,3,4,5 순서대로 나옵니다.

 

2. 복사하기 클론(clone()) or =

public class javaarray{
	public static void main(String[] args) {
		int[] intarray= new int[] {1,2,3,4,5};
		int[] intarray_2 = intarray.clone();
		
		System.out.println(intarray);
		System.out.println(intarray_2);
	}
}

 

위의 코드처럼 클론을 통해 복사하면 아래와 같이 저장됩니다.

두 변수가 참조하는 위치가 서로 다릅니다.

위치는 아래와 같이 서로 다릅니다.

만약  = 을 통해 복사했다면?

 

public class javaarray{
	public static void main(String[] args) {
		int[] intarray= new int[] {1,2,3,4,5};
		int[] intarray_2 = intarray;
		
		System.out.println(intarray);
		System.out.println(intarray_2);
	}
}

아래와 같이 같은 위치를 참조합니다.

데이터가 바뀌면 두변수 모두가 참조하는 데이터가 변하는 것이므로 양쪽 다 변하게 되지요.

위치는 아래와 같이 똑같습니다.

728x90