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