JAVA/JAVA_개념

JAVA - 4. 배열

onivv 2023. 11. 23. 17:06

#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. 중복제거 알고리즘

     : 랜덤값으로 배열을 저장한다면 중복이될 수 있음 → 그 중복이 없게 코딩