오늘이라도

혼자 공부하는 자바, Ch. 05-2 배열 본문

취업성공패키지 SW 개발자 교육/Java

혼자 공부하는 자바, Ch. 05-2 배열

upcake_ 2020. 3. 12. 21:00
반응형

https://github.com/upcake/Class_Examples

교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다. 


1. 배열 : 같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스를 부여해놓은 자료구조

 - 배열은 같은 타입의 데이터만 저장할 수 있다.

 - 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다.

 

 

2. 배열 선언

타입[] 변수 = null;

 

 

3. 배열 생성

 (1) 값 목록으로 배열 생성

타입[] 변수 = {값0, 값1, 값2, 값3, ...};

 - 중괄호 {}는 주어진 값들을 항목으로 가지는 배열 객체를 힙에 생성하고, 배열 객체의 번지를 리턴한다.

 - 배열 변수는 리턴된 번지를 저장함으로써 참조가 이루어진다.

▲예제 01. 값 목록으로 배열 생성 ①
▲예제 01. 값 목록으로 배열 생성 ②

 

(2) new 연산자로 배열 생성

 - 향후 값들을 저장할 배열을 미리 만들고 싶다면 new 연산자로 배열 객체를 생성할 수 있다.

타입[] 변수 = new 타입[길이];

 - new 연산자로 배열을 처음 생성할 경우 배열은 자동적으로 기본값으로 초기화된다.

 - 배열 생성후에 특정 인덱스 위치에 새로운 값을 저장하려면 대입 연산자를 사용한다.

변수[인덱스] = 값;

▲예제 02. new 연산자로 배열 생성

 

 

4. 배열 길이 : 배열에 저장할 수 있는 전체 항목의 개수

배열 변수.length;

 - 코드에서 배열의 길이를 얻으려면 배열 객체의 length 필드를 읽는다.

 - length 필드는 읽기 전용 필드이기 때문에 값을 바꿀 수 없다.

▲예제 03. 배열의 length 필드

 

 

5. 명령 라인 입력

 - main() 메소드는 String[] args 매개 변수를 통해서 명령 라인에서 입력된 데이터의 수(배열의 길이)와 입력된 데이터(배열의 항목 값)을 알 수 있게 된다.

 - 실행할 때 매개값을 주지 않으면 길이 0인 String 배열이 매개값으로 전달되고 args.length는 0이 된다.

▲예제 04-1. main() 메소드의 매개 변수 : 매개값 X
▲예제 04-2. main() 메소드의 매개 변수 : 매개값 10, 20

 

 

6. 다차원 배열

 - 값이 행과 열로서 구성된 배열을 2차원 배열이라고 한다.

▲예제 05. 배열 속의 배열

 

 

7. 객체를 참조하는 배열

 - 기본 타입 배열은 각 항목에 직접 값을 갖고 있지만, 참조 타입 배열은 각 항목에 객체의 번지를 가지고 있다.

▲예제 06. 객체를 참조하는 배열

 

 

8. 배열 복사

 - 배열을 한 번 생성하면 크기를 변경할 수 없기 때문에 더 많은 저장 공간이 필요하다면 더 큰 배열을 새로 만들고 이전 배열로부터 항목 값들을 복사해야 한다.

 - 배열 간의 항목 값 복사는 for문을 사용하거나 System.arraycopy() 메소드를 사용한다.

▲예제 07. for문으로 배열 복사

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

 - System.arraycopy(원본 배열, 복사할 항목의 시작 인덱스, 새 배열, 붙여넣을 시작 인덱스, 복사할 개수);

 - 참조 타입의 배열이 복사되면 복사되는 값이 객체의 번지이므로 새 배열의 항목은 이전 배열의 항목이 참조하는 객체와 동일하다.

▲예제 08. System.arraycopy()로 배열 복사

 

 

9. 향상된 for문

 - 자바는 배열이나 컬렉션을 좀 더 쉽게하기 위해 향상된 for문을 제공한다.

for(② 타입 변수 : ① 배열) {
	③ 실행문;
}

 - for문의 반복 횟수는 배열의 항목 수가 된다.

▲예제 09. 향상된 for문
▲문제 01. for문을 이용해서 배열의 최대값 구하기
▲문제 02. 중첩 for문을 이용해서 배열의 합과 평균값 구하기
▲문제 03. 실행 결과를 보고 알맞게 작성하기

반응형