intArray = new int[5];
int intArray = new int[5]; // 배열 선언과 생성 동시에 가능
배열 초기화
{ }에 원소를 나열하면 초기화된 배열 생성 가능
int intArray[] = {1, 2, 3, 4, 5};
※ { }에 나열된 값의 개수로 배열 원소 개수가 정해지므로 [ ]안에 크기 지정하면 안된다.
배열 인덱스와 원소 접근
배열 인덱스
정수만 가능.
0부터 시작.
음수 인덱스를 사용하거나 범위를 넘어서 사용할 경우 오류 발생.
배열 생성이 되기 전 인덱스로 원소 접근 시 컴파일 오류 발생.
레퍼런스 치환과 배열 공유
레퍼런스 변수와 배열 공간이 분리되어 있어 다수의 레퍼런스 변수가 하나의 배열 공간 가리키는 배열 공유가 쉽게 이루어진다.
int array[] = new int[5];
int newArray[] = array; // 레퍼런스 치환. newArray는 array와 동일한 배열 참조.
배열의 크기
length 필드를 이용하여 배열의 크기 알아낼 수 있다.
int array = new int[5];
int size = array.length; // size = 5
배열과 for-each문
for-each문
배열이나 나열의 크기만큼 루프 돌면서 각 원소를 순차적으로 접근할 때 사용.
for(변수 : 배열레퍼런스){
...
}
int n[] = {1, 2, 3, 4, 5};
int sum = 0;
for(int k : n){
sum += k;
}
k=n[0], ... ,n[4] 값으로 바꾸면서 배열 n의 크기만큼 반복.
다차원 배열
2차원 배열
첫번째 [ ] : 행의 개수
두번째 [ ] : 열의 개수
비정방형 배열
행마다 열의 개수가 서로 다른 배열
int i[][] = new int[4][]; //각 행을 가리키는 레버런스 배열 생성
i[0] = new int[1]; //첫번째 행에 1개 크기의 배열 생성
i[1] = new int[2]; //두번째 행에 2개 크기의 배열 생성
i[2] = new int[3];
i[3] = new int[4];
/* 초기화를 통해 비정방형 배열 생성 */
int intArray = { {0}, {1, 2}, {3, 4, 5}, {6, 7, 8, 9} };
메소드에서 배열 리턴
메소드에서 배열을 리턴하면, 배열에 대한 레퍼런스(배열의 주소)만 리턴
int[] makeArray(){ //리턴 타입, 메소드 이름 지정
int temp[] = new int[4];
return temp;
}
int[] intArray; //makeArray() 메소드의 리턴 타입과 동일한 타입 선언
intArray = makeArray();
※ 메소드는 레퍼런스만 리턴하므로, 리턴타입 선언시 [ ]안에 배열의 크기 지정하지 않는다.
※ 리턴하는 배열의 타입이 리턴받는 레퍼런스 변수의 타입과 일치해야 한다.
main() 메소드
main() 메소드 특징
public 속성
: 메소드가 다른 클래스에서 호출 가능하다. = 다른 클래스에서 메소드 접근 허용
static 속성
: 객체 생성 전부터 호출 가능. = 자신을 포함하는 클래스의 객체가 생성되기 전에, 처음부터 자바 가상 기계에 의해 호출된다.
[Java] 배열
배열이란?
인덱스와 인덱스에 대응하는 데이터들로 이루어진 연속적인 자료구조.
같은 종류의 데이터들이 순차적으로 저장.
배열 선언 및 생성
1. 배열에 대한 레퍼런스 변수 선언
※ 배열 선언 시 [ ]안에 배열의 크기 지정하면 안된다.
레퍼런스 : 배열의 주소
레퍼런스 변수 : 배열에 대한 주소 값을 가지는 변수
2. 배열 생성
데이터를 저장할 배열 공간을 할당받는 과정.
new 연산자를 이용해 배열을 생성하며 [ ]안에 생성할 원소 개수 지정.
배열 초기화
{ }에 원소를 나열하면 초기화된 배열 생성 가능
※ { }에 나열된 값의 개수로 배열 원소 개수가 정해지므로 [ ]안에 크기 지정하면 안된다.
배열 인덱스와 원소 접근
배열 인덱스
레퍼런스 치환과 배열 공유
레퍼런스 변수와 배열 공간이 분리되어 있어 다수의 레퍼런스 변수가 하나의 배열 공간 가리키는 배열 공유가 쉽게 이루어진다.
배열의 크기
length 필드를 이용하여 배열의 크기 알아낼 수 있다.
배열과 for-each문
for-each문
배열이나 나열의 크기만큼 루프 돌면서 각 원소를 순차적으로 접근할 때 사용.
k=n[0], ... ,n[4] 값으로 바꾸면서 배열 n의 크기만큼 반복.
다차원 배열
2차원 배열
첫번째 [ ] : 행의 개수
두번째 [ ] : 열의 개수
비정방형 배열
행마다 열의 개수가 서로 다른 배열
메소드에서 배열 리턴
메소드에서 배열을 리턴하면, 배열에 대한 레퍼런스(배열의 주소)만 리턴
※ 메소드는 레퍼런스만 리턴하므로, 리턴타입 선언시 [ ]안에 배열의 크기 지정하지 않는다.
※ 리턴하는 배열의 타입이 리턴받는 레퍼런스 변수의 타입과 일치해야 한다.
main() 메소드
main() 메소드 특징
: 메소드가 다른 클래스에서 호출 가능하다. = 다른 클래스에서 메소드 접근 허용
: 객체 생성 전부터 호출 가능. = 자신을 포함하는 클래스의 객체가 생성되기 전에, 처음부터 자바 가상 기계에 의해 호출된다.
: 아무 값도 리턴하지 않는다.
: 명령행에 입력된 인자들을 문자열 배열로 만들어 main() 메소드에 전달.
: 만들어진 문자열 배열 레퍼런스가 매개변수 args에 전달.
'Back-End > Java' 카테고리의 다른 글