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+" "); } } }