2022.09.21 (수) _이신희
배열(Array)란?
“같은 타입의 여러 변수를 하나의 묶음으로 다루는 것”
(1) int s1, s2, s3 .....s 1000;
(2) int [] s = new int[1000];
Java
복사
필요한 데이터 수가 많을 때 (1)번처럼 그 수만큼 변수를 선언해야 한다면 코드도 길어지고 곤란할 것이다. 그러나 배열을 이용한다면 (2)번처럼 간단히 해결할 수 있다.
위 그림처럼, 배열은 각 저장공간이 연속적으로 배치되어 있다.
배열 선언과 생성
(1) 타입 [] 변수명 ;
int [] score;
(2) 타입 변수명 [] ;
int score [] ;
// 배열의 참조 변수 생성
Java
복사
위처럼 배열을 선언했다면, 배열을 생성해야 한다. 배열을 선언하는 것은 생성될 배열을 다루기 위한 참조변수(주소)를 위한 공간이 만들어지는 것이고, 배열을 생성해야만 데이터를 저장할 수 있는 공간이 생성된다.
(1)
int score [] ;
(2)
score = new int [5];
Java
복사
(1) 코드가 실행되었을 때, 참조 변수 공간 생성
(2) 코드가 실행되었을 때, 데이터가 저장될 배열 공간이 생성.
배열 길이와 인덱스
인덱스(index)는 배열의 각 요소마다 붙여진 일련번호로, 1이 아닌 0부터 시작한다.
배열의 길이는 int범위 의 양의 정수이어야 한다
int array [] =new int [5];
int tmp = array.length;
Java
복사
자바에서는 JVM이 모든 배열의 길이를 별도 관리한다. '배열이름.length'를 사용하면 배열의 길이 정보를 얻을 수 있다. 이미 생성된 배열은 길이가 변하지 않기 때문에 상수다.
따라서 반복문에서 배열의 크기만큼 반복을 할 때, 직접 배열의 길이를 적는 것보다, '배열이름.length'를 사용하는 것이 좋다.
배열의 초기화
배열을 생성과 동시에 자동적으로 자료형에 맞는 기본값으로 초기화되지만, 원하는 값으로 저장하려면 각 요소마다 값을 지정해 줘야한다.
(1)
int score [] = new int [] {50,60,70,80,80};
(2)
int [] score = {50,60,70,80,80};
(3)
int [] score = new int[5];
for(int i =0; i<score.length; i++){
score[i] = i *10+50;
}
Java
복사
(1)(2)(3) 모두 같은 데이터 값으로 배열을 초기화했다.
배열의 출력
배열의 출력도 for문을 이용해 출력할 수 있다.
int [] score = {50,60,70,80,80};
for(int i=0; i<score.lengthl;i++){
System.out.println(score[i]+",");
}
Java
복사
위 코드를 J2SE 5.0부터 추가된 for each 문으로 아래와 같이 작성할 수 있다.
int [] score = {50,60,70,80,80};
for(int num : score){
System.out.println(num);
}
Java
복사