์ธํฐํ์ด์ค๋ ์ผ๋ถ ๋์์ ์ค๋ช
ํ๋ ๊ณต๊ฐ์ ์ด๊ณ ์ผ๋ฐ์ ์ผ๋ก ํ์ฉ๋๋ ๊ณ์ฝ(ํฉ์)์
๋๋ค. ๊ทธ๋ค์ ๋ฌด์์ ์ํด ํ์ํฉ๋๊น? ์๋ฅผ ๋ค์ด ๋ฌธ์์ด ๋ชฉ๋ก์ ๊ฐ๋ฆฌํค๋ ๋งํฌ๊ฐ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ฒ์์ ์ด ๋ชฉ๋ก์ ๋ง์ ์์๊ฐ ์ถ๊ฐ๋ ๋ค์ ์ ์ฒด ๋ชฉ๋ก์ด ํ ๋ฒ ์ฒ๋ฆฌ๋๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ ์๋ ค์ง ๊ถ์ฅ ์ฌํญ์ ๋ฐ๋ฅด๊ณ ํด๋์ค๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค
ArrayList
.
ArrayList<String> list = new ArrayList<>();
์ฐ๋ฆฌ๋ ์ด ๋ฌธ์์ด ๋ชฉ๋ก์ ์ฌ์ฉํ๊ณ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด ํด๋์ค๋ณ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ 100,500์ค์ ์ฝ๋๋ก ํ๋ก๊ทธ๋จ ๋์์ ์์ฑํ์ต๋๋ค ArrayList
. ์๋ฅผ ๋ค์ด, verifyCapacity() ์
๋๋ค . ๋ชฉ๋ก ๋์ ์ค์ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์๋ํ๊ณ ๋น ๋ฅด๊ฒ ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ์ฐ๋ฆฌ๋ ํ๋ก๊ทธ๋จ์ ๋ฐฉํฅ์ ์ฝ๊ฐ ๋ค๋ฅธ ์์
์ ํ์ผ๋ก ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์ ํ์ ์ฃผ๋ก ๋ชฉ๋ก์ ์์ ๋ถ๋ถ์ ์ถ๊ฐ๋ฉ๋๋ค. ์ด๋ฌํ ์ ํ์ ํ์ค์๋ ํจ์ฌ ๋ ์ ํฉํฉ๋๋ค LinkedList
. ๊ทธ๋ฌ๋ 100,500์ค์ ์ฝ๋๋ก ๊ตฌ์ฑ๋ ํ๋ก๊ทธ๋จ์ ๋ ์ผ๋ก ๋ฒ์ญํ๋ ค๋ฉด LinkedList
ํน์ ๋ฐฉ๋ฒ์ ์ฌ์ฉ์ ์ฐพ์์ ์ ๊ฑฐํด์ผ ํ๋ฉฐ ArrayList
, ์๋ง๋ ์ด๋ค ๊ณณ์์๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ณ ์น์
์ ๋
ผ๋ฆฌ๋ฅผ ํฌ๊ฒ ๋ณ๊ฒฝํด์ผ ํ ๊ฒ์
๋๋ค. ArrayList
, ๋ฐ ์์ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋ ๋ฉ์๋๋ง ์ฌ์ฉํ๋ค๋ฉด LinkedList
์ด ์์
์ ์ํํ ํ์๊ฐ ์์ต๋๋ค. ์ฝ๋ ํ ์ค, ์ฆ ๋ชฉ๋ก ์ ์ธ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
LinkedList<String> list = new LinkedList<>();
์ด๋ฌํ ํด๋์ค์ ๋ํ ๊ณตํต ๋ฉ์๋ ์ ์ธ์ ์ถ์ ํด๋์ค(์: )์ ๋ฐฐ์นํ๋ ๊ฒ์ด ๋ ํธ๋ฆฌํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค AbstractList
. ์ด ๊ฒฝ์ฐ ๋ชฉ๋ก์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ธํ ์ ์์ต๋๋ค.
AbstractList<String> list = new ArrayList<>();
๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ์ ์ ์ํ๊ฒ ์ ํํ ์ ์์ต๋๋ค.
AbstractList<String> list = new LinkedList<>();
ํ์ง๋ง ์ด ๊ฒฝ์ฐ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ ์ ์๋ ํด๋์ค๋ ํด๋์ค์ ์์์ด ์๋์ง๋ง ๋์ผํ ๋์๊ณผ ๋์ผํ ๋ฉ์๋๋ฅผ ๊ฐ๋ AbstractList
๋ ์ ํฉํ ํด๋์ค๊ฐ ์๋๋ผ๋ ํด๋์ค์ ์์์ผ๋ก๋ง ์ ํ๋ฉ๋๋ค. AbstractList
์ด๋ป๊ฒ ํด์ผ ํ๋์? ์ด๊ฒ์ด ์ธํฐํ์ด์ค๊ฐ ๋ฐ๋ช
๋ ์ด์ ์
๋๋ค . ์ธํฐํ์ด์ค๋ ์์ ํ ๊ด๋ จ๋์ง ์์ ํด๋์ค๊ฐ ์ปค๋ฐํ ์ ์๋ ์ผ๋ จ์ ๋ฉ์๋์ ํด๋น ๋์์ ๋ํ ๊ท์น์ผ๋ก, ํด๋น ํด๋์ค ์ค ํ๋๋ฅผ ๋จ์ผ ์ฐธ์กฐ๋ก ์ฐธ์กฐํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
List<String> list;
list = new ArrayList<>();
list = new LinkedList<>();
list = new AnotherListClass<>();
AnotherListClass
ํด๋์ค์ ๊ณตํต ์กฐ์ ํด๋์ค ArrayList
๊ฐ ์๋๋ผ๋ . ์ธํฐํ์ด์ค์ ์ข์ ์๋ ์๋์ฐจ์ ์คํฐ์ด๋ง์
๋๋ค. ์๋์ฐจ์๋ ์คํฐ์ด๋ง ํ , ํ๋ฌ ๋ฐ ๊ธฐ์ด๋ฐ์ค๊ฐ ์์ต๋๋ค. ๋๋ถ๋ถ์ ์๋์ฐจ์์ ์ด๋ฌํ ์์๋ ๋์ผํ ๋์ ๊ท์น์ ๋ฐ๋ฆ
๋๋ค. ์๋ฅผ ๋ค์ด, ํธ๋ค์ ์๊ณ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ๋๋ฆฌ๋ฉด ์๋์ฐจ ์ ์กฐ์ฌ์ ์๊ด์์ด ์๋๊ฐ ๋นจ๋ผ์ง์ง ์๊ณ ์ผ์ชฝ์ผ๋ก ํ์ ํฉ๋๋ค. ์ด๋ฌํ ์ปจํธ๋กค์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์๋ฉด ๋ชจ๋ธ, ์ฐ์, ์ ์กฐ์ฌ ๋๋ ์์ง ์ ํ์ ๊ด๊ณ์์ด ๋ชจ๋ ์๋์ฐจ๋ฅผ ์ฝ๊ฒ ๋ค๋ฃฐ ์ ์์ต๋๋ค. ๋ํ ์์ ํ ๋ค๋ฅธ ์ ํ์ ์ด์ก ์๋จ(์: ์ฐ์ฃผ์ )์ด ์๋์ฐจ์ ๋์ผํ ์ ์ด ์ธํฐํ์ด์ค๋ฅผ ๊ฐ๋ ์ํฉ์ ์์ํ ์ ์์ต๋๋ค. ์๋์ฐจ๋ฅผ ์ด์ ํ๋ ๋ฐฉ๋ฒ์ ์๋ ๋น์ ์ด ๊ทธ๋ฌํ ๋ฐฐ์ ์กฐ์ข
์์ ์์ ์๋ค๋ฉด ์ด๋ฌํ ์ํฉ์์ ๊ธธ์ ์๋ ๊ฒ์ ํผํ ์ ์์ต๋๋ค. ๋ค์ ํ ๋ฒ ๋ฐ๋ณตํด ๋ณด๊ฒ ์ต๋๋ค.LinkedList
Object
- ์ธํฐํ์ด์ค๋ ํ๋์ ๊ดํ ๊ณ์ฝ(ํฉ์)์ ๋๋ค.
- ์์์ผ๋ก ๊ด๋ จ๋์ง ์์ ํด๋์ค๋ผ๋ ๋ง์ ํด๋์ค๋ ์ด ๊ณ์ฝ(์ธํฐํ์ด์ค ๊ตฌํ)์ ์ค์ํ๋ ๋ฐ ๋์ํ๋ค๊ณ ์ ์ธํ ์ ์์ต๋๋ค.
- ๋ณ๋์ ์ธํฐํ์ด์ค์ ๋์ ์ค๋ช ์ ๋ฐฐ์นํ๋ฉด ์ฝ๋์ ์ ์ฐ์ฑ์ด ํฅ์๋์ด ์ธํฐํ์ด์ค์ ๊ตฌํ(์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ํด๋์ค)์ ์์๊ณผ ๊ด๋ จ๋์ง ์์ ํด๋์ค๋ก ์ ํํ ์ ์์ผ๋ฏ๋ก ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค.
GO TO FULL VERSION