728x90
지금껏 배웠던 1차원 배열은 단순하게 순서대로 쭉 나열되어 있었습니다. 오늘 배운 2차원 배열은 여기에서 더 나아가 선이 면이 되듯이, 하나의 차원이 추가됩니다.
2차원 배열의 선언과 생성은 다음과 같습니다.
int[][] arr = new int[2][3]
arr[행][열], arr[row][colum]
2차원 배열의 사용법은 []가 하나 추가되는 것을 제외하고는 1차원 배열과 동일합니다.
package array;
public class ArrayRef2 {
public static void main(String[] args) {
int[][] arr = new int[2][3];
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[1][0] = 4;
arr[1][1] = 5;
arr[1][2] = 6;
System.out.print(arr[0][0] + " ");
System.out.print(arr[0][1] + " ");
System.out.print(arr[0][2] + " ");
System.out.println();
System.out.print(arr[1][0] + " ");
System.out.print(arr[1][1] + " ");
System.out.print(arr[1][2] + " ");
System.out.println();
}
}
이를 이용하여 픽셀 그림을 그릴 수 있을거 같습니다. 하지만 저의 그림실력은 끔찍하니 넘어가겠습니다.
2차원 배열 리팩토링
package array;
public class ArrayDi2 {
public static void main(String[] args) {
int[][] arr = {
{1, 2, 3},
{4, 5, 6}
};
for (int row = 0; row < arr.length; row++) {
for (int column = 0; column < arr[row].length; column++) {
System.out.print(arr[row][column] + " ");
}
System.out.println();
}
}
}
위에 나열되어 있던 코드를 더 짧고 간결하게 만들었습니다. arr 생성의 단계를 줄였고, row와 column의 반복을 모두 for 구문을 사용하여 리팩토링 하였습니다. 추가로 println을 이용하여 줄바꿈을 하였습니다.
향상된 for문, for-each문 사용
package array;
public class EnhancedFor1 {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
}
}
기존 for문에서 i를 사용하여 반복시켰던 것과 달리 numbers라는 배열에서 하나씩 가져오며 반복합니다. 반복 횟수나 i를 만들지 않아도 된다는 점에서는 유용하지만, i를 사용하여 순서를 넣고, 이를 내오는 반복문에는 사용하지 못한다는 단점이 있습니다.
향상된 for문의 단축키는 iter 입니다.
728x90
반응형
LIST
'Sparta > java' 카테고리의 다른 글
java static 좀 더 깊게 알아보기 (0) | 2024.11.12 |
---|---|
java 코드 리팩토링 (0) | 2024.11.10 |
인수(Argument)와 매개변수(Parameter) (0) | 2024.11.07 |
메서드(Method) vs 함수(Function)의 차이 (0) | 2024.11.07 |
TIL(Today I Learned)_객체지향언어_24.11.03.Sun (0) | 2024.11.03 |