///////
Search
🪞

[chapter 06] 배열

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
복사