■ Java Arrays(배열)
- 하나의 변수로 여러 개의 값을 다룰 수 있다.
- 동일 자료형만 다룰 수 있다.
- 한번 생성한 배열의 크기는 변하지 않는다.
- 배열에 속한 값은 메모리의 연속된 위치를 갖는다.
1. 배열의 생성
• 배열 선언
int[] integers;
int cStyleIntegers[]; // 가독성이 떨어지므로 안 쓰는 표현, old c-style
• 배열의 생성과 초기화
// 1. 생성 후 초기화
int[] integers2 = new int[10];
integers2[0] = 5;
integers2[1] = 10;
integers2[2] = 9;
// 2. 생성과 동시에 초기화
int[] integers3 = new int[]{5, 7, 2, 3, 4};
int[] integers4 = {1, 2, 3 ,4, 5};
2. 배열의 접근
• 인덱스를 이용한 접근
float[] floats = new float[5];
for(int i = 0; i < floats.length; i++){ // for 문을 이용한 초기화
floats[i] = (float)(i * 0.25);
}
• 향상된 for을 이용한 접근
for(float floatVal : floats){
System.out.println(floatVal);
}
3. 배열의 크기 변경
- 배열의 크기는 변경이 불가능하므로, 새로운 배열을 만들고 데이터를 옮겨야 한다.
int[] src2 = {1, 2, 3, 4, 5};
int[] dst2 = new int[10];
for(int integer2 : dst)
System.out.println(integer2);
// System.arraycopy(src2, 0, dst2, 0, src2.length);
* System.arraycopy()를 이용하여 Array 값을 Copy 할 수 있다.
■ N-D Arrays(다차원 배열)
- 배열이 배열을 담고 있다.
- 수학에서 말하는 점 -> 선 -> 면 -> 공간 -> 4차원 -> 5차원 -> ...
1. 다차원 배열의 생성
• 다차원 배열 선언
int[][] ints;
int[] halfCStyle[]; // Hybrid
int cStyle[][]; // old...
• 다차원 배열의 생성
// 1. 여러 차원을 동시에 생성
int[][] ints1 = new int[10][5];
// 2. 상위 차원의 배열부터 생성
int[][] ints2 = new int[10][];
for(int i = 0; i <ints2.length; i++){
ints2[i] = new int[ints1[0].length];
}
int[][] ints3 = new int[5][];
ints3[0] = new int[10];
ints3[1] = new int[5];
• 다차원 배열의 초기화
int[][] ints4 = {{1, 2, 3}, {4, 5, 6}}; // int [2][3]
int[][] ints5 = {{1, 3, 2}, {1, 2}, {4, 5, 6}}; // int [3][]
2. 배열의 접근
• 인덱스를 이용한 접근
for(int i = 0; i < ints5.length; i++){
System.out.printf("[%d] : ",ints5[i].length);
for(int j = 0; j < ints5[i].length; j++)
System.out.printf("%d ",ints5[i][j]);
System.out.println();
}
• 향상된 for을 이용한 접근
for(int[] array : ints5){
System.out.printf("[%d] : ",array.length);
for(int val : array)
System.out.printf("%d ",val);
System.out.println();
}
'Coding > Java' 카테고리의 다른 글
Java Class(클래스) (0) | 2020.09.16 |
---|---|
Java String(문자열) (0) | 2020.09.16 |
Java Loops(반복문) (0) | 2020.09.16 |
Java Conditional(조건문) (0) | 2020.09.16 |
Java Operator(연산자) (0) | 2020.09.15 |