[java] 자바 배열의 선언과 접근 그리고 다차원 배열과 for each문

java 배열
– 자바의 배열은 인스턴스이다.
– 둘이상의 데이터를 저장하고 인덱스 번호로 접근이 가능
– 반복문을 이용한 순차접근 가능
– 배열 인스턴스의 멤버변수 length 를 통해 배열의 길이를 알 수 있다.

public class Test {

	public static void main(String[] args) {
		
		String[] strArr = new String[2];	// new 키워드 사용 즉 배열은 인스턴스이다.
		strArr[0] = "배열";
		strArr[1] = "인스턴스";
		System.out.println(strArr[0]+"은 "+strArr[1]+"이다");
		
		int[] arr = new int[10];	
		for (int i = 0; i < arr.length; i++) {	// 반복문을 이용한 순차접근
			arr[i] = i;
		}
		for (int i = 0; i < arr.length; i++) {	// length 변수를 통해 길이를 알 수 있다.
			System.out.print(arr[i]+" ");
		}
		
	}
}

 

*배열의 여러가지 선언방법

public class Test {

	public static void main(String[] args) {
		
		int[] arr = new int[3];
		
		int[] arr1 = new int[] {1,2,3};
		
		int[] arr2 = {1,2,3};
		
	}
}

 

*배열도 인스턴스이다. 따라서 매개변수로 전달할때 참조값(call by reference)이 전달된다.

public class Test {

	public static void main(String[] args) {
		
		int[] arr = {1,2,3};
		aaa(arr);   // 매개변수로 참조값 전달 Call by reference
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+" ");   // 값이 변경되어있다.
		}
		
	}
	
	static void aaa(int[] arr){    // 매개변수로 참조값을 전달받는다
		for (int i = 0; i < arr.length; i++) {
			arr[i] = 10;   // 값 변경
		}
	}
	
}

 

다차원 배열
1차원배열
int[] arr = new int[3];

arr[0] arr[1] arr[2]

2차원 배열
– 2차원의 구조를 갖는 배열
– 세로와 가로의 형태로 인스턴스를 생성하고 같은 방법으로 접근한다.
int[][] arr = new int[3][4]; => 길이가 4개인 일차원 배열을 3개 묶어놓은 것이라고 이해하면 편하다.
*new int[세로][가로];

arr[0][0] arr[0][1] arr[0][2] arr[0][3]
arr[1][0] arr[1][1] arr[1][2] arr[1][3]
arr[2][0] arr[2][1] arr[2][2] arr[2][3]

 

2차원 배열의 선언

public class Test {

	public static void main(String[] args) {
		
		int[][] arr1 = new int[3][4];
		
		int[][] arr2 = new int[][]{
				{1,2,3,4},{5,6,7,8},{9,10,11,12}
		};
		
		int[][] arr3 = {
				{1,2,3,4},{5,6,7,8},{9,10,11,12}
		};
	}
}

 

for문을 이용한 2차원 배열의 초기화와 순차접근

public class Test {

	public static void main(String[] args) {
		
		int[][] arr = new int[3][4];
		
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				arr[i][j] = i+j;
			}
		}
		
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				System.out.print(arr[i][j]+" ");
			}
			System.out.println();
		}
	}
}

 

for each문
– 배열 전체를 참조할때 유용하다

public class Test {

	public static void main(String[] args) {
		
		int[] arr = {1,2,3};
		
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+" ");
		}
		System.out.println();
		for (int i : arr) {
			System.out.print(i+" ");
		}
	}
}

답글 남기기