강의 내용
[1] 기본 배열과 객체 배열(실습)
[2] 이미지를 표현하는 2차원 배열
[1] 기본 배열과 객체 배열(실습)
기본 배열 vs. 객체 배열
기본 배열
기본 데이터를 다루는 배열(일반 배열)
기억 공간 하나 하나에 기본 자료가 들어가는 것
float[] f = new float[3];
f[0] = 17.4f
f[1] = 59.2f;
f[2] = 34.8f;
객체 배열
객체 여러 개를 저장하여 다루는 배열
기억 공간 하나 하나에 객체 자료가 들어가는 것
Book[] b = new Book[3];
b[0] = new Book();
b[1] = new Book();
b[2] = new Book();
Q. 영화 3편을 저장할 배열을 생성한 다음 영화 3편의 데이터를 저장하고 출력하시오.
Movie[] m = new Movie[3];
영화 3편을 저장할 기억 공간 3개를 만들어야 함
(1) 영화 3편을 저장하기 위해 변수 3개를 배열 형태로 만듦
(2) 생성된 번지를 배열의 변수에 넣음
m[0] = new Movie();
영화 3편의 데이터를 저장할 객체를 만들어야 함
(1) 메모리에 객체를 생성
(2) 생성된 번지를 변수에 넣어야 기억 공간에 영화 한 편이 저장된다.
public class ObjectArrayExam { public static void main(String[] args) { // Q. 영화 3편을 저장할 [배열을 생성]한 다음 영화 3편의 데이터를 저장하고 출력하시오. Movie[] m = new Movie[3]; m[0] = new Movie(); // 객체 생성(영화 한 편) m[0].mtitle = "A영화"; // 데이터 넣음 m[0].mmajor = "가길동"; m[0].mtime = 160; m[0].mlevel = 15; m[0].mday = "2023-01-15"; m[1] = new Movie(); m[1].mtitle = "B영화"; m[1].mmajor = "나길동"; m[1].mtime = 180; m[1].mlevel = 12; m[1].mday = "2023-01-11"; m[2] = new Movie(); m[2].mtitle = "C영화"; m[2].mmajor = "다길동"; m[2].mtime = 140; m[2].mlevel = 18; m[2].mday = "2022-11-16"; // 반복문 for (int i = 0; i < m.length; i++) { System.out.println(m[i].mtitle + "\t" + m[i].mmajor+ "\t" + m[i].mtime+ "\t" + m[i].mlevel+ "\t" + m[i].mday); } } }
[2] 이미지를 표현하는 2차원 배열
1차원 배열 vs. 2차원 배열
Q. [3명 학생]의 [3개 과목] 성적(국어, 영어, 수학)을 처리해야 되는 경우
1차원 배열
1차원 배열을 3개 만들어야 함
과목의 점수를 저장하도록은 가능하지만, 학생을 표현하기에는 한계
각각 개별로 존재하기 때문에 반복문을 사용할 수 없음
학생의 수(30명, 300명,,)가 늘어날 때마다 배열을 생성해야 함(비 효율적)
new int[과목];
int[] kor = new int[3]; // 한 사람
int[] eng = new int[3]; // 한 사람
int[] mat = new int[3]; // 한 사람
2차원 배열
2차원 배열을 1개 만들어야 함
데이터가 인접되어 있기 때문에 학생 데이터라 볼 수 있음
행과 열로 만들어지기 때문에 여러 데이터 저장 가능
연속적인 구조를 갖기 때문에 반복문 사용 가능
new int[학생][과목];
int[] score = new int[3][3];
Q. 영상 처리에서 이미지를 처리할 때 사용
*Pixel(픽셀) : 화소라고도 하며 디지털 이미지를 구성하기 위한 최소 단위
색상(0~255)
- 0에 가까울 수록 검정색 색상을 띔
- 255에 가까울 수록 하얀색 색상을 띔
숫자를 조합하여 색상을 표현하므로 숫자 하나하나가 일종의 픽셀
픽셀 하나를 프로그램으로 가져오려면 [256][256] : 2차원 배열을 만들어야 함
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.