Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 국비지원
- 상속
- 부모 생성자
- exception
- 캐스팅연산자
- 예외던지기
- for문
- 프로그래머스
- 추상화
- Date Class
- 사용자 정의 예외처리
- Calendar Class
- 독학
- 자바
- 백앤드
- AoutoBoxing
- 가위바위보프로그램
- userDefineException
- 취준생
- do~while문
- 개발자
- 생성자
- 비전공자
- 클래스의구조
- 알고리즘
- 코딩
- Java
- 예외처리
- 개발
- super 생성자
Archives
- Today
- Total
유난스런 개발 기록
[JAVA] Day-9 _ 2차원 배열 (TwoDimensionArray) 본문
day-9
2차원 배열
2차원 배열 (TwoDimensionArray)이란?
- 1차원 배열과 동일하지만 하나의 배열이 더 추가된 것이다.
- 1차원 배열은 배열 첨자 '[]' 가 한번 나오지만 2차원 배열은 두번 나온다.
- 배열 첨자 첫 번째는 배열의 가로줄(행)을, 두 번째는 세로줄(열)의 수를 의미한다.
// 2차원 배열의 선언
int[][] example;
// 2차원 배열 객체 할당
example = new int[n][n];
// 2차원 배열의 기본 형태, 변수 선언과 객체 할당을 동시에
int[][] exmaple = new[n][n];
위의 코드와 같이 2차원 배열을 선언할 수 있다.
2차원 배열은 배열 속에 배열이 있는 것이기 때문에 1차원 배열을 이해했다면
어렵지 않게 이해할 수 있다.
수업 시간에 진행했던 실습 코드다.
package my.day10.a.multiDimension;
public class _3TwoDimensionArray_main {
public static void main(String[] args) {
// === 2차원 배열 ===
int[][] pointArr = new int[4][]; // 4행 null열
/*
// 열의 크기를 설정하지 않았으므로 java.lang.NullPointerException 이 발생함.
pointArr[0][0] = 10;
pointArr[0][1] = 20;
pointArr[0][2] = 30;
pointArr[1][0] = 40;
// pointArr[1][1] = 50;
pointArr[1][2] = 60;
// pointArr[2][0] = 70;
// pointArr[2][1] = 80;
// pointArr[2][2] = 90;
pointArr[3][0] = 100;
pointArr[3][1] = 110;
pointArr[3][2] = 120;
*/
pointArr[0] = new int[3]; // 0행은 3열로 설정함.
pointArr[1] = new int[2]; // 1행은 2열로 설정함.
pointArr[2] = new int[4]; // 2행은 4열로 설정함.
pointArr[3] = new int[3]; // 3행은 3열로 설정함.
pointArr[0][0] = 10;
pointArr[0][1] = 20;
pointArr[0][2] = 30;
pointArr[1][0] = 40;
pointArr[1][1] = 50;
// pointArr[1][2] = 60; // java.lang.ArrayIndexOutOfBoundsException: 발생함.
//왜냐하면 존재하지 않는 배열의 방에 넣어줬다는 의미다.
pointArr[2][0] = 70;
pointArr[2][1] = 80;
pointArr[2][2] = 90;
pointArr[2][3] = 100;
/*
데이터값
-------------
| 0 | 0 | 0 |
-------------
| 0 | 0 |
------------------
| 0 | 0 | 0 | 0 |
------------------
| 0 | 0 | 0 |
-------------
index
----------------------------
| [0][0] | [0][1] | [0][2] |
----------------------------
| [1][0] | [1][1] |
-----------------------------------
| [2][0] | [2][1] | [2][2] | [2][3]
-----------------------------------
| [3][0] | [3][1] | [3][2] |
----------------------------
데이터값
----------------
| 10 | 20 | 30 |
----------------
| 40 | 50 |
----------------------
| 70 | 80 | 90 | 100 |
----------------------
| 0 | 0 | 0 |
-------------
*/
for(int i=0; i<pointArr.length; i++) { // 행
for(int j=0; j<pointArr[i].length; j++) { // 열
String str_add = (j<pointArr[i].length-1)?"\t":"\n";
System.out.printf("%3d%s", pointArr[i][j],str_add);
}
}// end of for-----------------------
/*
10 20 30
40 50
70 80 90 100
0 0 0
*/
System.out.println("\n~~~~~~~~~~~~~~~~~~~~~~~~\n");
int[][] numArr = {{10,20,30},
{40, 50},
{70,80,90,100},
{0,0,0}};
for(int i=0; i<numArr.length; i++) { // 행
for(int j=0; j<numArr[i].length; j++) { // 열
String str_add = (j<numArr[i].length-1)?"\t":"\n";
System.out.printf("%3d%s", numArr[i][j],str_add);
}
}// end of for-----------------------
System.out.println("\n=== 프로그램 종료 ===");
}// end of main()----------------------------------
}
'개념정리 > JAVA' 카테고리의 다른 글
[JAVA] Day-11 _ StringBuilder & StringBuilder (StringBuilder를 중심으로) (0) | 2023.01.23 |
---|---|
[JAVA] Day-10 _ String 클래스 (String Class),(자주 사용하는 메소드 정리) (4) | 2023.01.22 |
[JAVA] Day-9 _ 배열 (Array) (0) | 2023.01.19 |
[JAVA] Day-8 _ Math.random() 난수 생성하기 (0) | 2023.01.18 |
[JAVA] Day-7 _ 중첩 반복문 (0) | 2023.01.18 |