1. 배열(array)
1.1 배열(array)이란?
배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
1.2 배열의 생성
int[] score; // int형 배열 선언(배열을 다루기 위한 참조변수 선언)
score = new int[5]; // 배열을 생성(실제 저장공간을 생성)
/////////////////////////////////////
int[] score = new int[5];// 위와 같은 문장
1.3 배열의 길이와 인덱스
- 인덱스의 범위는 0부터 '배열길이-1'까지
- 배열의 길이는 0도 포함된다. ex) int[] arr = new int[0];
- 배열의 길이를 변경하는 법 : 더 큰 배열 생성, 기존 배열의 내용을 새로운 배열에 복사
배열이름.length : 배열길이 값을 반환해준다. 상수값(변경불가능)
1.4 배열의 초기화
- 배열은 생성과 동시에 자동적으로 자신의 타입에 해당하는 기본값으로 초기화 됨.
- for문이나 아래와 같은 방법으로 초기화를 할 수 있음.
int[] score = new int[] { 50, 60, 70, 80, 90 }; // 배열과 생성과 초기화를 동시에 할 수 있음.
int[] score = { 50, 60, 70, 80, 90 }; // new int[] 생략 가능
※ 배열 선언과 배열 생성을 나눠서 하면 'new int[]'를 생략 불가능
< 배열의 출력 >
- for문을 이용하여 출력
- System.out.println(Array.toString(배열이름));을 이용하여 출력 // import.java.util.*;를 추가해야 함.
- char배열은 println()으로 그냥 출력할 수 있다.
1.5 배열의 복사
- for문을 이용하여 복사
- System.arraycopy()를 이용한 배열의 복사 → 효율이 좋다.
//1. for문을 이용하여 복사
int[] arr = new int[5];
...
int[] tmp = new int[arr.length*2];
for(int i = 0; i < arr.length; i++)
tmp[i] = arr[i]; // arr[i]의 값을 tmp[i]의 값에 저장
arr = tmp; // 참조변수 arr이 새로운 배열을 가리키게 한다.( 전에 arr이 가리키던 배열은 더 이상 이용할 수 없게 된다.)
//2. System.arraycopy()를 이용한 배열의 복사
for(int i = 0; i < num.length; i++) { new Num[i] = num[i]; }
// 위와 아래는 동일한 동작을 한다
System.arraycopy(num, 0, newNum, 0, num.length);
//.............num[0]에서 newNum[0]으로 num.length개의 데이터를 복사
2. String배열
2.1 String배열의 선언과 생성
String[] name = new String[3]; // 3개의 문자열을 담을 수 있는 배열을 생성한다.
자료형 | 기본값 |
---|---|
boolean | false |
char | '\u0000' |
byte, short int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d 또는 0.0 |
참조형 변수 | null |
2.2 String배열의 초기화
- 배열의 각 요소에 대입
- 괄호{}를 사용해서 초기화
참조형 배열인 경우 실제 객체가 아닌 객체의 주소가 저장되어 있다.
2.3 char배열과 String클래스
- String클래스는 char배열에 기능(매서드)을 추가한 것이다.
매서드 | 설명 |
---|---|
char charAt(int index) | 문자열에서 해당 위치(index)에 있는 문자를 반환한다. |
int length() | 문자열의 길이를 반환한다. |
String substring(int from, int to) | 문자열에서 해당 범위(from ~ to)에 잇는 문자열을 반환한다.(to는 범위 포함x) |
boolean equals(Object obj) | 문자열의 내용이 obj와 같은지 확인한다. 같으면 true, 틀리면 false를 반환. |
char[] toCharArray() | 문자열을 문자배열(char[])로 변환해서 반환한다. |
<char배열과 String클래스의 변환>
char[] chArr = { 'A', 'B', 'C' };
String str = new String(chArr); // char배열 -> String
char[] tmp = str.toCharArray(); // String -> char배열
3. 다차원 배열
3.1 2차원 배열의 선언과 인덱스
선언방법 | 선언 예 |
---|---|
타입[][] 변수이름; | int[][] score; |
타입 변수이름[][]; | int score[][]; |
타입[] 변수이름[]; | int[] score[]; |
int[][] score = new int[4][3]; // 4행 3열의 2차원 배열 생성
3.2 2차원 배열의 초기화
int[][] arr = new int[][] { {1, 2, 3}, {4, 5, 6} };
int[][] arr = { {1, 2, 3}, {4, 5, 6} }; // new int[][] 생략 가능
int[][] arr = {
{1, 2, 3},
{4, 5, 6}
}; // 행별로 줄바꿈 해주면 보기에 좋다.
변수이름.length = 행의 개수, 변수이름[i].length = i 행의 열의 개수
3.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[2];
score[4] = new int[3]; // 열의 개수가 다른 배열 생성의 예
////////////////////////////////////////
int[][] score = {
{100, 100, 100, 100},
{20, 20, 20},
{30, 30},
{40, 40},
{50, 50, 50}
}; // 열의 개수가 다른 배열을 생성과 동시에 초기화
'LANGUAGE > [JAVA]' 카테고리의 다른 글
Chapter07 객체지향 프로그래밍II(Object-oriented Programming II) (0) | 2021.08.24 |
---|---|
Chapter06 객체지향 프로그래밍 I(Object-oriented Programming I) (0) | 2021.08.20 |
Chapter04 조건문과 반복문 if, switch, for, while statement (0) | 2021.08.17 |
Chapter03 연산자(operator) (0) | 2021.08.13 |
Chapter02 변수(variable) (0) | 2021.08.11 |