ํ๋ก๊ทธ๋จ์์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ํ๋์ ๋ณ์๋ก๋ ๋ถ์กฑํ๋ค.
๊ฐ์ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ฌถ์ด์ ๊ด๋ฆฌํ๋ ๊ตฌ์กฐ๊ฐ ํ์ํ๋ค.
๊ทธ ๋ํ์ ์ธ ๊ฒ์ด ๋ฐฐ์ด๊ณผ ArrayList๋ค.
1. ๋ฐฐ์ด(Array)
๋ฐฐ์ด์ ๊ฐ์ ์๋ฃํ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅํ๋ ๊ตฌ์กฐ๋ค.
1) ๋ฐฐ์ด ์ ์ธ
int[] numbers = new int[5];
- int ํ์ ๋ฐ์ดํฐ 5๊ฐ ์ ์ฅ
- ํฌ๊ธฐ 5๋ก ๊ณ ์
2) ๋ฐฐ์ด ์ด๊ธฐํ
int[] numbers = {1, 2, 3, 4, 5};
3) ๋ฐฐ์ด ์ ๊ทผ
๋ฐฐ์ด์ ์ธ๋ฑ์ค(index)๋ก ์ ๊ทผํ๋ค.
์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํ๋ค.
numbers[0]; //์ฒซ ๋ฒ์งธ ๊ฐ
numbers[2]; //์ธ ๋ฒ์งธ ๊ฐ
4) ๋ฐฐ์ด์ ํน์ง
- ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋จ
- ๊ฐ์ ํ์ ๋ง ์ ์ฅ ๊ฐ๋ฅ
- ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ ์ผ๋ก ์ ์ฅ
- ๋น ๋ฅธ ์ธ๋ฑ์ค ์ ๊ทผ(O(1))
2. ๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ
int[] arr = new int[3];
- Stack → arr(์ฐธ์กฐ ๋ณ์)
- Heap → ์ค์ ๋ฐฐ์ด ๊ฐ์ฒด ์์ฑ
๋ฐฐ์ด๋ ๊ฐ์ฒด์ด๋ฏ๋ก Heap์ ์ ์ฅ๋๋ค.
3. ArrayList
ArrayList๋ Java์์ ์ ๊ณตํ๋ ๊ฐ๋ณ ๊ธธ์ด ๋ฐฐ์ด ํด๋์ค๋ค.
import java.util.ArrayList;
ArrayList<Integer> list = new ArrayList<>();
1) ํน์ง
- ํฌ๊ธฐ๊ฐ ์๋์ผ๋ก ์ฆ๊ฐ/๊ฐ์
- ๊ฐ์ฒด๋ง ์ ์ฅ ๊ฐ๋ฅ
- ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด ๊ธฐ๋ฐ์ผ๋ก ๋์
2) ์ฃผ์ ๋ฉ์๋
list.add(10); //์ถ๊ฐ
list.get(0); //์กฐํ
list.set(0, 20); //์์
list.remove(0); //์ญ์
list.size; //ํฌ๊ธฐ ํ์ธ
4. ๋ฐฐ์ด vs. ArrayList ๋น๊ต
| ๊ตฌ๋ถ | ๋ฐฐ์ด | ArrayList |
| ํฌ๊ธฐ | ๊ณ ์ | ๊ฐ๋ณ |
| ์ ์ฅ ํ์ | ๊ธฐ๋ณธํ + ์ฐธ์กฐํ | ๊ฐ์ฒด๋ง ๊ฐ๋ฅ |
| ์๋ | ๋น ๋ฆ | ์ฝ๊ฐ ๋๋ฆผ |
| ํธ์์ฑ | ๋ฎ์ | ๋์ |
| ํจํค์ง | ๊ธฐ๋ณธ | java.util |
5. ์ ArrayList๋ ๊ธฐ๋ณธํ์ ๋ชป ๋ฃ์๊น?
ArrayList๋ ์ ๋๋ฆญ(Generic) ๊ธฐ๋ฐ ํด๋์ค๋ค.
ArrayList<int>; //๋ถ๊ฐ๋ฅ
ArrayList<Integer>; //๊ฐ๋ฅ
๊ธฐ๋ณธํ(int)์ ๊ฐ์ฒด๊ฐ ์๋๊ธฐ ๋๋ฌธ์ Wrapper Class(Integer)๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
์ด๋ฅผ ์คํ ๋ฐ์ฑ(Auto Boxing)์ด๋ผ๊ณ ํ๋ค.
6. ๋ด๋ถ ๋์ ์๋ฆฌ
ArrayList๋ ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํ๋ค.
- ์ด๊ธฐ ์ฉ๋ ์์ฑ
- ๋ฐ์ดํฐ ์ถ๊ฐ
- ์ฉ๋ ์ด๊ณผ ์ → ๋ ํฐ ๋ฐฐ์ด ์์ฑ
- ๊ธฐ์กด ๋ฐ์ดํฐ ๋ณต์ฌ
๊ทธ๋์ ์ถ๊ฐ ์์ ์ ๋น์ฉ์ด ๋ฐ์ํ ์ ์๋ค.
7. ์ธ์ ๋ฌด์์ ์จ์ผ ํ ๊น?
1) ๋ฐฐ์ด์ ์ฐ๋ ๊ฒฝ์ฐ
- ํฌ๊ธฐ๊ฐ ๊ณ ์
- ์ฑ๋ฅ์ด ์ค์
- ๋ฉ๋ชจ๋ฆฌ ํจ์จ ๊ณ ๋ ค
2) ArrayList๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ
- ๋ฐ์ดํฐ ๊ฐ์๊ฐ ์ ๋์
- ์ฝ์ /์ญ์ ๊ฐ ๋น๋ฒ
- ๊ฐ๋ฐ ํธ์์ฑ ์ค์
์ค๋ฌด์์๋ ๋๋ถ๋ถ ArrayList๋ฅผ ์ฌ์ฉํ๋ค.
'Back-End > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 08. ์ถ์ ํด๋์ค(Abstract Class) (0) | 2026.02.11 |
|---|---|
| 07. ์์๊ณผ ๋คํ์ฑ (0) | 2026.02.11 |
| 05. ํด๋์ค์ ๊ฐ์ฒด (0) | 2026.02.11 |
| 04. ์ ์ด ํ๋ฆ(Control Flow) (0) | 2026.02.11 |
| 03. ์ฐ์ฐ์ (0) | 2026.02.11 |