์ค๋ ์คํฐ๋ ํ๋ ๋ฐ ๋ค๋ฅธ ํ์๋ถ๋ค์ ์๊ธฐํด์ค ๊ฒ์ ๋ฐํ์ผ๋ก ์ดํดํ ๊ฒ๊ณผ ์ฐพ์๋ณธ ๊ฑฐ ๊ธฐ๋ฐ์ผ๋ก ์ข ๋ ์ ๋ฆฌํด์ผ ํ ๊ฒ ๊ฐ์์ ์ ๋ฆฌํจ + 8/17 ์์ ์๊ฐ ์ ๋ฆฌ ๋ด์ฉ ์ถ๊ฐ
- ์ ์ธํ ๋ ํฌ๊ธฐ์ ๋ฐ์ดํฐ ํ์ ์ ์ง์ ํด์ผ ํ๋ค.
int arr[10];
String arr[5];int[] myArray = new int[10];- ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด index๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์์น๋ฅผ ๋ฐ๋ก ์ ์ ์์ด ๊ฒ์์ ํธํ ์ฅ์ ์ด ์๋ค.
- ๋ฐ์ดํฐ ํฌ๊ธฐ๊ฐ ์ ํด์ ธ ์๋ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ์ฉ์ด
- ์ ์ ํ ๋น(static allocation) : ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ์ ์ธ ํ ๋ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ฉฐ, ํ ๋ฒ ์์ฑ๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ด๋ ต๋ค.
- ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋ ๊ฒ์ ๋ฒ๊ฑฐ๋กญ๋ค. ์๋ํ๋ฉด ์๋๊ฐ์ ๋ฐ์ด๋ด๊ณ ํด๋น INDEX์ ๋ฎ์ด์์์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
List๋ array์ฒ๋ผ ํฌ๊ธฐ๋ฅผ ์ ํด์ฃผ์ง ์์๋ ๋๊ธฐ ๋๋ฌธ์ ํฌ๊ธฐ์ ๋ฌธ์ ์ธ ๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋์จ ๊ฒ์ผ๋ก array์์๋ index๊ฐ ์ค์ํ๋ค๋ฉด, List์์๋ ์์๊ฐ ์ค์ํ๋ค.
- ArrayList๋ ํฌ๊ธฐ๊ฐ ๋์ ์ผ๋ก ํ์ฅ๋๋ ๋ฐฐ์ด์ ๊ตฌํ์ฒด๋ก ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํด๋ ๋ด๋ถ์ ์ผ๋ก ํฌ๊ธฐ๊ฐ ์๋์ผ๋ก ์กฐ์ ๋๋ค.
- ArrayList๋ ๊ฐ์ฒด์ ์ ์ฅํ๋ฉฐ, ๊ฐ์ฒด ์ถ๊ฐ/์ญ์ ์ ์ฉ์ดํ๋๋ก ๊ตฌํ๋์ด ์๋ค.
- ArrayList๋ ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด๋ก ๊ตฌํ๋์ง๋ง, ํฌ๊ธฐ๊ฐ ๋์ ์ผ๋ก ํ์ฅ๋๋ฏ๋ก ๋ฐฐ์ด์ ํฌ๊ธฐ ์ ํ ๊ทน๋ณต ๊ฐ๋ฅ
- Java์ ์ ๋ค๋ฆญ(Generic) ๊ธฐ๋ฅ์ ์ด์ฉํ๋ฉด ArrayList์ ํ์ ์ ๋ฏธ๋ฆฌ ์ง์ ํ์ฌ ์ฌ์ฉํจ์ผ๋ก์จ ํ์ ์์ ์ฑ์ ํ๋ณด
- ์ฐ์์ ์ธ ๋ฐ์ดํฐ์ ๋ฆฌ์คํธ(์ค๊ฐ์ ๋น ๊ณต๊ฐ์ด ์์ผ๋ฉด ์๋๋ค.)
- ArrayList ํด๋์ค๋ ๋ด๋ถ์ ์ผ๋ก Object[] ๋ฐฐ์ด์ ์ด์ฉํ์ฌ ์์๋ฅผ ์ ์ฅ
- ๋ฐฐ์ด์ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด์ ์์์ ๋น ๋ฅด๊ฒ ์ ๊ทผ ๊ฐ๋ฅ
- ๋ฐ์ดํฐ์ ์ ์ฌ๋(Capacity)์ ๋ฐ๋ผ ๊ฐ๋ณ์ ์ผ๋ก ๊ณต๊ฐ์ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ์ ์๋ค.
- ์ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ฆฌ์คํธ ์ค๊ฐ์ ์ฝ์ /์ญ์ ์, ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ๋ ๋จ์ ์ด ์กด์ฌํ๋ค. (๋ํ๊ฑฐ๋ ๋บ๋๋ง๋ค ์ค์ค์ด ๋น๊ฒจ์ง๊ฑฐ๋ ๋ฐ๋ ค๋ ๋ ์งํ๋๋ ์ฐ์ฐ์ด ์ถ๊ฐ, ๋ฉ๋ชจ๋ฆฌ๋ ๋ญ๋น..) ๋น ๊ณต๊ฐ์ด ์๊ธฐ์ง ์๋๋ก ์ธ๋ฑ์ค๋ฅผ ์กฐ์ ํด์ผ ํ๋ ๊ณผ์ ์ด ํ์ํ๋ฉฐ ๋์์ด ๋๋ฆฌ๋ค.
- ๋ฐฐ์ด๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋์ผํ ํ์ ์ ์์๋ฅผ ์ ์ฅํ๋๋ฐ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํ ๋ฒ ์์ฑํ ArrayList๋ ๊ทธ ๋ด๋ถ์ ์์ ํ์ ๋ณ๊ฒฝํ๊ธฐ๋ ์ด๋ ต๋ค.
- ์กฐํ ๊ธฐ๋ฅ์ ์ ํฉํ ๋ฐ์ดํฐ ๊ตฌ์กฐ
import java.util.ArrayList;
// ArrayList ์์ฑ
ArrayList<Integer> myList = new ArrayList<>();
// ์์ ์ถ๊ฐ
myList.add(10);
myList.add(20);
// ์์ ์ ๊ทผ
int element = myList.get(0);
// ์์ ์ญ์
myList.remove(0);์ฐ๊ฒฐ๋ฆฌ์คํธ์๋ ๋จ์ผ, ๋ค์ค ๋ฑ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค. ์ข ๋ฅ๊ฐ ๋ฌด์์ด๋ , ํ ๋ ธ๋์ ์ฐ๊ฒฐ๋ ๋ ธ๋์ ํฌ์ธํฐ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐฉ์
- ์ด๋ฐ ๋ฐฉ์์ ํ์ฉํ๋ฉด์, ๋ฐ์ดํฐ์ ์ค๊ฐ์ ์ฝ์ ๋ฐ ์ญ์ ๋ฅผ ํ๋๋ผ๋ ์ ์ฒด๋ฅผ ๋์ง ์์๋ ์ด์ ๊ฐ๊ณผ ๋ค์๊ฐ์ด ๊ฐ๋ฅด์ผฐ๋ ์ฃผ์๊ฐ๋ง ์์ ํ์ฌ ์ฐ๊ฒฐ์์ผ์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ฒ ์งํํ ์ ์๋ค.
- ์ด๋ ๊ฒ๋ง ๋ณด๋ฉด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ ๊ฐ์๋ณด์ด์ง๋ง,
List์ k๋ฒ์งธ ๊ฐ์ ์ฐพ์๋ผ์์๋ ๋นํจ์จ์
- array๋ arrayList์์ index๋ฅผ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ฒ์์ด ๋น ๋ฅด์ง๋ง, LinkedList๋ ์ฒ์๋ถํฐ ์ดํด๋ด์ผํ๋ฏ๋ก(์์ฐจ) ๊ฒ์์ ์์ด์๋ ์๊ฐ์ด ๋ ๊ฑธ๋ฆฐ๋ค๋ ๋จ์
- ์ํฉ์ ๋ง๊ฒ ํ๋ ๊ฒ์ด ์ข์
๋ฐฐ์ด: ๊ณ ์ ํฌ๊ธฐ, ๋ณ๊ฒฝ์ด ์ด๋ ค์. ArrayList: ํฌ๊ธฐ ๋์ ์กฐ์ ๊ฐ๋ฅ. Linked List: ํฌ๊ธฐ ๋์ ์กฐ์ ๊ฐ๋ฅ.
๋ฐฐ์ด: ์์ ์ถ๊ฐ/์ญ์ ์ ์ ์ฝ์ด ์์. ArrayList: ์์ ์ถ๊ฐ/์ญ์ ์ฉ์ด. Linked List: ์์ ์ถ๊ฐ/์ญ์ ์ฉ์ด (ํนํ ์ค๊ฐ์ ์ฝ์ /์ญ์ ).
๋ฐฐ์ด: ์ธ๋ฑ์ค๋ฅผ ํตํ ๋น ๋ฅธ ์ ๊ทผ ๊ฐ๋ฅ. ArrayList: ์ธ๋ฑ์ค๋ฅผ ํตํ ๋น ๋ฅธ ์ ๊ทผ ๊ฐ๋ฅ. (๊ฒ์์ ๋ฐฐ์ด๊ณผ ์ ์ฌ) Linked List: ๊ฒ์ ์๋๊ฐ ๋ฐฐ์ด, ArrayList์ ๋นํด ๋๋ฆผ.
๋ฐฐ์ด: ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ. ArrayList: ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด ์ฌ์ฉ, ํฌ๊ธฐ ์กฐ์ ๊ฐ๋ฅ. Linked List: ๊ฐ ์์๊ฐ ๋ ธ๋๋ก ์ฐ๊ฒฐ๋์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ๋ ์ฌ์ฉ.
๋ฐฐ์ด: ํฌ๊ธฐ ๋ณ๊ฒฝ์ด ๊ฑฐ์ ์๋ ๊ฒฝ์ฐ, ๋น ๋ฅธ ์ธ๋ฑ์ค ์ ๊ทผ์ด ์ค์ํ ๊ฒฝ์ฐ. ArrayList: ํฌ๊ธฐ ๋ณ๊ฒฝ์ด ํ์ํ ๊ฒฝ์ฐ, ๋น ๋ฅธ ์ธ๋ฑ์ค ์ ๊ทผ์ด ์ค์ํ ๊ฒฝ์ฐ. Linked List: ์์์ ์ถ๊ฐ/์ญ์ ๊ฐ ๋น๋ฒํ ๊ฒฝ์ฐ.
8/23 ๊ตญ๋น์์ ํ ์คํธ ๋ณด๋ค๊ฐ ๋์น ๋ถ๋ถ์ธ ๊ฒ ๊ฐ์ ์ถ๊ฐํจ
๐ ๋ชจ๋ ๋ฆฌ์คํธ๋ ๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ์ ์ผ ๋จผ์ ๋๊ฐ๋ค๋ผ๋ ๋ง์ ๋ง๋ ๋ง์ผ๊น?
์ผ๋จ ๋ต์ NO์ด๋ค
ArrayList
- ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
- ๋ฐ์ดํฐ๊ฐ ์์ฐจ์ ์ผ๋ก ์ ์ฅ๋๋ฉฐ, ์ธ๋ฑ์ค๋ก ์ ๊ทผํ ์ ์๋ค.
- ์ด ๋๋ฌธ์ ArrayList์์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ฉด ๊ทธ ๋ค์ ์ธ๋ฑ์ค์ ์๋ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ก ๋น๊ฒจ์ง๋ค.
- ๋ฐ๋ผ์ "๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ์ ์ผ ๋จผ์ ๋๊ฐ๋ค"๋ ๊ฒ์ ์ญ์ ๋ ๋ฐ์ดํฐ๊ฐ ์๋๋ผ๋ ํด๋น ์์น์ null ๋๋ ๋ค๋ฅธ ๊ฐ์ด ๋ค์ด์๋ ์ฑ๋ก ๋จ์์๊ฒ ๋๋ค.
LinkedList
- ๊ฐ ๋ฐ์ดํฐ๋ ์ด์ ๋ฐ์ดํฐ์ ๋ค์ ๋ฐ์ดํฐ์ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ๋ ์ด์ ๋ฐ์ดํฐ์ ๋ค์ ๋ฐ์ดํฐ์ ์ฐธ์กฐ๋ง ๋ณ๊ฒฝ๋๋ฏ๋ก, "๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ์ ์ผ ๋จผ์ ๋๊ฐ๋ค"๋ ๊ท์น์ด ์ผ๋ฐ์ ์ผ๋ก ์ ์ง
๋ฐ๋ผ์ "๋ชจ๋ ๋ฆฌ์คํธ๋ ๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ์ ์ผ ๋จผ์ ๋๊ฐ๋ค"๋ ์ค๋ช ์ ArrayList์ ๊ฐ์ ๋ฐฐ์ด ๊ธฐ๋ฐ ๋ฆฌ์คํธ์์๋ ์ ํํ์ง ์์ ์ ์๋ค.
- LinkedList๋ ๊ฐ ์์์ ์ธ๋ฑ์ค๊ฐ ์๋ค. ํ์ง๋ง ArrayList์๋ ๋ค๋ฅด๊ฒ LinkedList์** ์ธ๋ฑ์ค๋ก ์ง์ ์ ์ธ ์ ๊ทผ์ ์ฑ๋ฅ์์ ์ด์ ๋ก ๊ถ์ฅ๋์ง ์๋๋ค.**
- LinkedList๋ ๊ฐ ์์๊ฐ ๋ค์ ์์์ ์ด์ ์์์ ๋ํ ์ฐธ์กฐ๋ง์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์, ์ํ๋ ์์น๋ก ๋ฐ๋ก ์ ๊ทผํ๋ ค๋ฉด **์ฒ์๋ถํฐ ์์ฐจ์ ์ผ๋ก ์ฐพ์๊ฐ์ผ ํ๋ค. **๋ฐ๋ฉด์ ArrayList๋ ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํ๊ณ ์ธ๋ฑ์ค๋ก ์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฅธ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
์คํฐ๋์์ ์ข์ ์ ์ ๋ด๊ฐ ๋์น ๋ถ๋ถ ํ๋ฒ ๋ ์ ๋ฆฌ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด๋ค. ํ์ดํ


