1. String 배열
1) String 배열의 선언과 생성
String[] name = new String[3];
- String타입의 참조변수를 저장하기 위한 공간이 마련
- 참조형 변수의 기본값은 null이므로 각 요소는 null로 초기화
2) String 배열의 초기화
String[] name = new String[3];
name[0] = new String("Lee");
name[1] = new String("Yeon");
name[2] = new String("Ju");
// 원래 String은 new 연산자를 사용해 객체를 생성해야하나 생략할 수 있음
String[] name = new String[3];
name[0] = "Lee";
name[1] = "Yeon";
name[2] = "Ju";
3) char배열과 String클래스
- String클래스는 char배열에 기능(메서드)을 추가한 것임
- char배열과 다르게 String객체(문자열)는 읽을 수만 있을 뿐, 내용을 변경할 수 없음
+) 커맨드 라인으로 입력받기
- 프로그램을 실행할 때 클래스 이름 뒤에 공백문자로 구분하여 여러 개의 문자열을 프로그램에 전달할 수 있음
ex) C:\jdk1.8\work\ch5>java ArrayEx16 abc 123 "Hello"
-> public static void main(String[] args) { } 에서 args에 입력된 문자열들이 들어감
-> 숫자든 문자든 문자열로 처리됨
2. 2차원 배열
1) 다차원 배열
- 1차원 배열이 아닌 2차원 이상의 배열을 뜻함 (2차원, 3차원, ...)
2) 2차원 배열의 선언과 생성
선언 방법 | 선언 예 |
타입[][] 변수이름; | int[][] score; |
타입 변수이름[][]; | int score[][]; |
타입[] 변수이름[]; | int[] score[]; |
int[][] score = new int[4][3];
- 4행 3열의 데이터, 모두 12개의 int값을 저장할 수 있는 공간이 마련됨
- 각 요소는 int의 기본값인 0으로 초기화 됨
3) 2차원 배열의 index
- 2차원 배열은 행(row)과 열(column)로 구서외어 있음
- 행index의 범위 : 0 ~ 행의 길이-1
- 열index의 범위 : 0 ~ 열의 길이-1
- 2차원 배열의 각 요소에 접근하는 방법 : 배열이름[행index][열index]
int[][] score = new int[4][3];
score[0][0] = 100;
System.out.println(score[0][0]);
4) 2차원 배열의 초기화
- 괄호{}를 사용해서 생성과 초기화를 동시에 할 수 있음
- 단, 1차원 배열보다 괄호{}를 한번 더 써서 행별로 구분해 줌
int[][] arr = new int[][] { {1,2,3}, {4,5,6} };
// 또는
int[][] arr = { {1,2,3}, {4,5,6} };
// 행별로 줄 바꿈을 해주는 것이 좋음
int[][] arr = {
{1,2,3},
{4,5,6}
};
int[][] score = {
{100, 100, 100},
{20, 20, 20},
{30, 30, 30},
{40, 40, 40},
{50, 50, 50}
};
※ 2차원 배열의 length
- score.length 는 행의 수
- score[i].length 는 i행의 열의 수
3. 가변 배열
- 2차원 이상의 다차원 배열을 생성할 때 전체 배열 차수 중 마지막 차수의 길이를 지정하지 않고, 추후에 각기 다른 길이의 배열을 생성함으로써 고정된 형태가 아닌 유동적인 가변 배열을 구성할 수 있음
int[][] score = new int[5][];
// 각 행마다 다른 길이의 배열을 생성할 수 있음
score[0] = new int[4];
score[1] = new int[3];
score[2] = new int[2];
score[3] = new int[1];
score[4] = new int[3];
- 가변배열도 괄호{}를 이용해서 생성과 초기화를 동시에 할 수 있음
int[][] score = {
{100, 100, 100, 100},
{20, 20, 20},
{30, 30},
{40},
{50, 50, 50, 50}
};
참고 - Java의 정석 3rd Edition (저자 : 남궁성, 출판 : 도우출판)
'공부 > Java' 카테고리의 다른 글
[Java-06] 객체지향프로그래밍 - 변수, 메서드 (0) | 2021.02.17 |
---|---|
[Java-06] 객체지향프로그래밍 - 클래스, 객체 (0) | 2021.02.16 |
[Java-05] 배열(Array) - 1차원 배열 (0) | 2021.02.10 |
[Java-04] 조건문과 반복문 (0) | 2021.02.09 |
[Java-03] 연산자(Operator) - 비교 연산자, 논리 연산자, 비트 연산자 (0) | 2021.02.08 |