냠냠뇸
[Java의 정석] 배열(array) 본문
1. 배열
1-1. 배열의 선언과 생성
배열은 다음과 같은 두가지 방법으로 선언할 수 있다.
1) 타입[ ] 변수이름;
int[] score;
String[] name;
2) 타입 변수이름[ ];
int score[];
String name[];
배열을 선언한 다음에는 값을 저장할 수 있는 공간을 만들기 위해 배열생성과정을 다음과 같이 거친다.
타입[ ] 변수이름; -> 배열선언 변수이름 = new 타입[길이] -> 배열생성 |
int[] score;
score = new int[5]; //int 타입 값 5개를 저장가능한 배열생성
참고로 길이가 0인 배열도 사용 가능하다.
1-2. 배열의 길이와 인덱스
age[2] = 28; // 배열 age의 3번째 요소에 28을 저장한다.
int value = score[3]; // 배열 score의 4번째에 저장된 요소를 value에 저장한다.
이런식으로 배열의 인덱스를 이용해 값을 저장할 수 있고,
for (int i=0 ; i < 5 ; i++ ){
age[i] = i + 10 ;
}
수식을 이용해 값을 저장할 수 도 있다.
배열의 길이에 대한 정보는 '배열이름.length'를 통해 얻을 수 있다.
int[] arr = new int[5]; // 길이가 5인 int 배열
int tmp = arr.length; // tmp에는 배열의 길이인 5가 저장된다.
for문을 사용할때 조건식을 아랫줄처럼 배열길이로 지정하면 더 쉽게 관리 할 수 있다.
for (int i=0 ; i < 6 ; i++)
for (int i=0 ; i < score.length ; i++)
1-3. 배열의 초기화
배열은 직접 값을 저장하거나 for문등을 통해 배열을 초기화 할 수도 있지만,
자바에서는 특별한 방법으로 간단히 초기화 하는 방법이 존재한다.
int [] score = new int { 10, 20, 30, 40, 50}; //배열의 생성과 초기화를 동시에
int [] score = {10, 20, 30, 40, 50}; // new int 생략가능
이런식으로 생성과 동시화 특정값으로 초기화 할 수 있고,
new int 를 삭제해 더 간결하게 코드를 구성할 수도 있다.
단 아래와 같이 선언을 따로 하는 경우에는 new int 를 생략할 수 없다.
int[] score;
score = new int[] { 10, 20, 30, 40, 50 }; // ok
score = { 10, 20, 30, 40, 50 }; // 에러
아래 배열들은 모두 길이가 0인 배열이다.
int[] score = new int[0];
int[] score = new int[] {};
int[] score = {};
배열 출력시 Arrays.toString(배열이름) 매서드를 사용하면 배열의 요소를 쉽게 반환할 수 있다.
int[] Arr = { 10, 20, 30, 40, 50 };
System.out.println(Arrays.toString(Arr)); //배열Arr의 모든값을 출력한다.
1-4. 배열의 복사
for문을 통해 배열을 복사하거나 아예 arraycopy()을 이용하여 복사하는 방법도 있다.
for(int i=0 ; i < num.length ; i ++) {newNyum[i] = num[i];}
System.arraycopy(num, 0, newnum, 0, num.length) ;
위의 for문을 아래와 같이 대신해서 쓸수 있는데,
괄호안의 요소들은 num[0]에서 newnum[0]으로 num.length개의 데이터를 복사한다. 로 해석할 수 있다.
'JAVA > 자바의 정석' 카테고리의 다른 글
[Java의 정석] 조건문과 반복문 (0) | 2022.01.24 |
---|---|
[Java의 정석] 연산자(operator) (0) | 2022.01.23 |
[Java의 정석] 변수(Variable)-기본형(primitive type), 형변환(casting) (0) | 2022.01.23 |
[Java의 정석] 변수(Variable)-변수와 상수/변수의 타입 (0) | 2022.01.23 |