JAVA 07. Array
Chapter | 1 | ~ | 4 | ||
---|---|---|---|---|---|
Ch 1 | 01 | ||||
Ch 2 | 02 | 03 | 04 | 05 | |
Ch 3 | 06 | 07 | 08 | ||
Ch 4 | 09 | 10 | 11 | 12 | 13 |
Next Section |
---|
Array
배열 (Array)
- index와 index에 대응하는 data들로 이루어진 data structure
- 한번에 많은 메모리 공간 선언 가능
- 같은 타입의 데이터들이 순차적으로 저장되는 공간
- 원소 데이터들이 순차적으로 저장
- 인덱스를 이용하여 원소의 데이터에 접근
- index
- 0부터 시작
- index : 배열의 시작 위치에서부터 데이터가 있는 상대 위치
배열의 선언과 생성
1. 배열에 대한 레퍼런스 변수 intArray 선언
int intArray [];
int : 배열 타입
intArray : 배열에 대한 레퍼런스 변수
[] : 배열 선언
2. 배열 생성
intArray = new int [5];
intArray : 배열에 대한 레퍼런스 변수
new : 배열 생성
int : 데이터 타입
[5] : 원소의 개수
- 선언과 동시에 배열을 생성
int intArray[] = new int [5];
- 배열 초기화
int intArray[] = {4, 3, 2, 1, 0};
double doubleArray[] = {0.01, 0.02, 0.03, 0.04};
배열 인덱스와 배열 원소 접근
- 배열의 인덱스는 0부터 시작
int intArray[] = new int[5];
intArray[0] = 3;
intArray[3] = 7;
int n = intArray[3];
- 반드시 배열을 생성한 후 접근해야함
int intArray[]; //레퍼런스만 선언됨 intArray[1] = 7; //오류발생 : 배열이 생성되어 있지 않음
레퍼런스 치환과 배열 공유
- 레퍼런스 교환으로 두 레퍼런스가 하나의 배열을 공유
int intArray[] = new int [5];
int myArray[] = intArray;
intArray[1] = 2;
myArray[1] = 6;
System.out.println(intArray[1]); // 6
연습문제 1 : 양수 5개를 입력받아 배열에 저장하고, 가장 큰 수를 출력하는 프로그램 ArrayMax.java을 작성하시오.
배열의 크기 및 length 필드
- 자바의 배열은 object로 처리됨 : length 라는 필드가 존재
- 배열의 크기는 배열 객체의 length 필드에 저장
int intArray[] = new int[5];
int size = intArray.length; //size = 5
연습문제 2 : 배열의 length 필드를 이용하여 배열 크기만큼 정수를 입력받고 평균을 출력하는 ArrayAverage.java를 작성하시오.
for-each 문
- for-each문 : 배열이나 나열(enum)의 원소를 순차접근할때 유용한 for문
for(변수 : 배열레퍼런스) {
작업문
}
int n[] = {1, 2, 3, 4, 5};
int sum = 0;
for(int k : n) {
sum+=k;
}
연습문제 3 : 양수 5개를 받아 배열에 저장한 후, for-each 문을 활용하여 배열의 합을 구하는 프로그램 ForEachSum.java를 작성하시오.
2차원 배열
- 2차원 배열의 선언
int intArray[][];
- 2차원 배열의 생성
intArray = new int[2][5];
- 선언과 생성을 동시에
int intArray[][] = new int[2][5];
- 선언과 동시에 초기화
int intArray[][] = { {0, 1, 2}, {3, 4, 5}, {6, 7, 8} };
연습문제 4 : 2차원 배열에 학년별로 1, 2학기 학점을 입력받아 저장하고, 4년 전체 학점 평균을 출력하는 프로그램 FourYearGrade.java를 작성하시오.
배열을 리턴하는 메소드
-
배열 리턴 : 배열의 레퍼런스만 리턴 (배열 전체가 리턴되는 것이 아님)
-
메소드의 리턴 타입
- 리턴하는 배열 타입과 리턴 받는 배열 타입의 일치
- 리턴 타입에 배열의 크기를 지정하지 않음
int[] makeArray() {
int temp[] = new int[4];
return temp;
}
//main 메소드에서는
int[] intArray;
intArray = makeArray();
연습문제 5 : 1차원 정수 배열을 생성하여 리턴하는 makeArray()를 작성하고, 이 메소드로부터 배열을 전달받는 프로그램 ReturnArray.java를 작성하시오.
Thanks for watching my post!
Comments