5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열 Lecturer Kim Myoung-Ho Nickname 블스 blogstudy@naver.com
5-1. 배열이란? 변수 배열 숫자:0,1,2… 문자:a,b,c… 문자열:abc, def,… 변수 변수 변수 클래스 변수 하나의 데이터만 가지고 있던 변수(요술주머니)와 달리 여러 개의 데이터를 가지고 있는 요술주머니. 즉, 여러 개의 변수(요술주머니)를 모아놓은 또 하나의 요술주머니하고 생각하면 쉽다. 숫자:0,1,2… 문자:a,b,c… 문자열:abc, def,… 변수 변수 변수 클래스 변수 등등… 변수 변수 변수 변수 배열
변수 선언 : int i = 10; 배열 선언 : int[] iArr = {10, 20, 30, 40, 50}; 5-2. 배열문법 배열문법 – I (5_2_ex1_arr) - 변수 선언과 거의 비슷하며, 여러 개의 데이터가 모여 있어 ‘{ }’를 이용 한다. - 배열의 크기는 최초에 한번 설정되면 변경이 불가 하다. 변수 선언 : int i = 10; 배열 선언 : int[] iArr = {10, 20, 30, 40, 50}; 10 20 30 40 50 변수 변수 변수 변수 변수 iArr (배열 크기 : 5)
배열 선언 : int[] iArr = new int[5]; 5-2. 배열문법 배열문법 – II (5_2_ex2_arr) 배열 선언 : int[] iArr = new int[5]; int[0] = 10; int[1] = 20; int[2] = 30; int[3] = 40; int[4] = 50; 10 20 30 40 50 변수 변수 변수 변수 변수 iArr (배열 크기 : 5)
메모리에 ‘i요술주머니’가 만들어 지고, ‘i요술주머니’안에 10이라는 데이터가 들어 있다. 5-2. 배열문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 10 메모리에 ‘i요술주머니’가 만들어 지고, ‘i요술주머니’안에 10이라는 데이터가 들어 있다. 변수 : i 10 주소값 20 메모리에 ‘iArr요술주머니’가 만들어 지고, ‘iArr요술주머니’안에는 배열을 구성하고 있는 데이터의 주소값이 들어 있다. 즉, 배열 주머니에는 기초자료형 변수와 달리 데이터가 들어 있지 않다. 배열 : iArr 30
5-2. 배열문법 레퍼런스의 이해 배열은 배열을 구성하고 있는 데이터들의 주소값을 가지고 있다고 하였습니다. 이때 주소값을 ‘레퍼런스’라고 합니다. 만약 동일한 주소값을 가지고 있다면, 같은 데이터를 가리키고(가지고) 있다고 보면 됩니다. (5_4_ex1_referenceEx)
주소값 주소값 10 20 30 40 50 100 200 300 400 500 주소값 주소값 5-2. 배열문법 레퍼런스의 이해 배열 : iArr1 배열 : iArr1 10 20 30 40 50 100 200 300 400 500 주소값 주소값 배열 : iArr2 배열 : iArr2
5-2. 배열문법 배열 예제 배열을 이용하여 학생들(영희, 철수, 길동, 영수, 말자)의 키를 입력하고, 평균치를 구하 보자.(5_4_ex2_heightAve) 가장 큰 학생과 가장 작은 학생을 구분해 보자.(5_4_ex2_heightAve)
int[ ][ ] iArr = new int[3][ ]; int[0] = new int[2]; 5-5. 배열문법 다차원 배열 (5_5_ex2_multiArr) 배열이 가리키는 데이터에 또다른 배열이 들어 있는 구조 주소값 10 20 주소값 주소값 100 200 300 배열 : iArr 주소값 1000 2000 int[ ][ ] iArr = new int[3][ ]; int[0] = new int[2]; int[1] = new int[3]; int[2] = new int[2]; Int[ ][ ] iArr = new int[3][2]; iArr[0][0]= 10; iArr[0][1]= 20; iArr[1][0]= 100; iArr[1][1]= 200; ….