JAVA - 4. 배열
#1 배열 정의
: 여러개의 변수를 깔끔하게 정리해서, 한 공간에 저장할 수 있도록 하는 "자료형"
★ 장점 ★
1. 보다 더 많은 공간을 활용할 수 있다.
2. 데이터를 접근할 때 보다 빠르게 접근할 수 있다.
★ 배열을 사용할 수 있는 3가지 조건 ★
1. 관련된 데이터여야 한다.
2. 같은 타입의 데이터여야 한다.
3. 데이터의 개수를 정확히 알고 있어야 한다.
ex) 네이버 몇 명 가입할지 어떻게 알지? --> 이런건 배열 X
#2 배열 선언 방법
★ 일반적으로 데이터 값이 변수에 저장되는 흐름 ★
// 3명의 학생 점수
int stu1 = 10;
int stu2 = 20;
int stu3 = 30;
1. 4byte짜리 int 공간이 생긴다.
2. 주소가 생긴다.
3. 주소가 복잡해서 stu1 이라고 이름을 붙여준다.
4. 완성된 stu1 공간에는 10이라는 값이 들어간다.
=> 하지만 변수가 생성되는 위치는 어디인지 몰라서 데이터를 찾으러갈 때 시간이 오래걸린다. 메모리 낭비가 심하다.
★ 배열이란?? ★
: 여러개의 변수를 깔끔하게 정리해서, 한 공간에 저장할 수 있도록 하는 "자료형"이다.
< 장점 >
1. 보다 더 많은 공간을 활용할 수 있다.
2. 데이터를 접근할 때 보다 빠르게 접근 가능하다.
★ 배열 만드는 방법 ★
int[] stuArr = new int[3]
1. int[ ] 배열공간 생성 □ → 주소가 생긴다. → 주소에 stuArr 이름을 붙여준다.
2. int 3개짜리 배열 공간 만들기 □ □ □ → 주소 만들기 → 주소를 int [ ] 에 저장한다.
- int[ ] : int 배열 자료형, int타입의 배열
- stuArr : 변수명
- new : 개발자 전용 메모리 공간(Heap 메모리)에 데이터를 생성하라는 연산자
대입연산자(=) 보다 먼저 수행됨.
그래서 int[3] 방 3개를 만들고 → 만들어진 주소가 int[ ]에 대입된다.
- index : 배열의 번호, 0부터 시작!
★ 배열 만드는 방법 ★
int[] stuArr = new int[3]
1. int[ ] 배열공간 생성 □ → 주소가 생긴다. → 주소에 stuArr 이름을 붙여준다.
#3 자료구조 & 알고리즘
★ 자료구조 ★
- "데이터 관리를 용이하게 해보자!"
- 다양한 자료형을 공부하는 분야
- 메모리 관리 용이
- ex) 배열이 자료구조에 포함된다.
★ 알고리즘 ★
- "문제를 좋게 해결하는 과정을 생각해보자!"
- 자료형과 관련된 로직을 공부하는 분야
- 효율성; 속도가 빨라짐
[ 배열과 관련된 알고리즘(로직) ]
1. 최대값(최소값) 찾기 알고리즘
: 하나의 값을 단정지어서 다른 값과 하나하나 비교하면서 검색
2. 탐색(검색) 알고리즘
▷ 일반 검색 : 앞에서 하나씩 검사!
▷ 최적화된 검색 : 빠르게 찾는 이진 탐색법, 최적화된 검색을 하려면 반드시 정렬이 선행되어야 한다!
3. 정렬 알고리즘
: 빠른(최적화된) 탐색을 위한 전제조건
4. 중복제거 알고리즘
: 랜덤값으로 배열을 저장한다면 중복이될 수 있음 → 그 중복이 없게 코딩