์๋
! ์ค๋ ์์
์์๋ Java์์ ๋ฐฐ์ด์ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ๊ณผ ๋ฐฐ์ด์ Arraylist๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช
ํฉ๋๋ค. ๋ฐฐ์ด์ Java์์ ์ปจํ
์ด๋ ํด๋์ค์ ํ์ฅ์ด๋ฉฐ ๋ฐ์ดํฐ ์์ด ๊ตฌ์ฒด์ ์ผ๋ก ์๋ ค์ง ๊ฒฝ์ฐ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ํ ์ธํธ๋ฅผ ์์๋ก ๋ณด์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฐฐ์ด์ ๋ง๋ค ๋ ์ ์ ์
๋๋ค. ์ฆ, ๋ฐฐ์ด์ ๋ง๋ค ๋ ํฌํจํ๋ ํญ๋ชฉ ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. Java์์ ๋ฐฐ์ด์ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ์ตํด์ผ ํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋ณด์
๋๋ค.
datatype[] isArray;
์ฌ๊ธฐ์ datatype์ int, float, long ๋๋ String๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ํ์
๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ ์ธ ๋ค์ ๋๊ดํธ๋ฅผ ๋ฐฐ์นํ ์๋ ์์ต๋๋ค.
datatype isArray[];
๊ทธ๋ ๋ค๋ฉด ์์ ์๊ฐ ์ค์ ๋ ์ด ์ ์ ๋ฐฐ์ด์ ์ด๋ป๊ฒ ๊ฐ์ ธ์ ArrayList๋ก ๋ณํํ ๊น์? ์, ๋จผ์ ArrayList๊ฐ ๋ฌด์์ธ์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ด๋ ์ด๋ฆฌ์คํธ
ArrayList๋ Array์ ์ด๋ฆ์ด ๋น์ทํ ์ ์์ง๋ง ์์ ํ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค. ArrayList๋ Container ํด๋์ค๋ฅผ ํ์ฅํ์ง ์๊ณ List ํด๋์ค๋ฅผ ํ์ฅํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ ๋ชจ๋ ๊ฒ์ด ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฐ์ ๋ชฉ๋ก์ด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅด๊ฒ ์กฐ์ํ ์ ์์ต๋๋ค. List์ ๋์ ์์๋ฅผ ๋ฐฐ์นํ๊ณ ํ์ํ ๊ฒฝ์ฐ ํฌ๊ธฐ๋ฅผ ํ๋์ฉ ๋๋ฆฌ๋ add(element)๋ฅผ ์ฌ์ฉํ์ฌ ArrayList์ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ์ ์์ต๋๋ค . ๋๋ trimToSize()๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.๋์์ ๋น ์ธ๋ฑ์ค๋ฅผ ์ ๊ฑฐํ๊ณ ArrayList๋ฅผ ํ์ฌ ํฌ๊ธฐ๋ก ์๋ฆ ๋๋ค. ๋ฐ๋ผ์ ๋ฐฐ์ด ๋์ ArrayList๋ฅผ ์ฌ์ฉํ๋ฉด ๋ช ๊ฐ์ง ์ด์ ์ด ์์์ ์ ์ ์์ต๋๋ค. ๋ค์์ผ๋ก Array์์ ArrayList๋ก ๋ณํํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ๊ณผ ํ์ํ ๊ฒฝ์ฐ ๋ค๋ก ์ด๋ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.Java์์ Array์์ ArrayList๋ก, ArrayList์์ Array๋ก ์ด๋
๋ฐ๋ผ์ ๊ณ ์์ด ๋๋ฌด๋ฅผ ์๋ฆฌํ๊ธฐ ์ํด ํ์ฌ์์ ๋ณด์ ํ๊ณ ์๋ ๋ํธ์ ๋ณผํธ์ ์๋ฅผ ๊ธฐ๋กํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์๋ ๋์ 30๊ฐ์ง ์ ํ๋ง ํ์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ถ์ ํ๊ธฐ๊ฐ ์ฌ์ ์ต๋๋ค. ํ์ง๋ง ์ด์ 5๊ฐ์ง ์ ํ์ ์ถ๊ฐ๋ก ๋น์ถํด์ผ ํ๋ ์๋ก์ด ๊ณ ๊ฐ์ด ์๊ฒผ์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ๋ณ๊ฒฝํ๊ณ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๋ฉด์ ๋ค๋ฅธ ๊ณ ๊ฐ์ ์ ํํ ๋ ๋ค์ ์ด ์์ ์ ์ํํ์ง ์๋๋ก ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ์ข์์! ArrayList! ๊ทธ๋ ๋ค๋ฉด Java Array๋ฅผ ArrayList๋ก ์ด๋ป๊ฒ ๋ณํํฉ๋๊น? ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. .asList() ๋ฉ์๋ ์ฌ์ฉ Java ๋ฐฐ์ด์๋ .asList() ๋ผ๋ API๋ฅผ ๋ณผ ๋ ๋ณผ ์ ์๋ ํ๋ฅญํ ๋๊ตฌ๊ฐ ์์ต๋๋ค . ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ์ ์์ต๋๋ค.
boltInventory.asList(bolts);
์ด ๋ฐฉ๋ฒ์ ๋ฌธ์ ์ ์ ์ง์ ํ ArrayList๋ฅผ ์์ฑํ์ง ์๋๋ค๋ ๊ฒ์
๋๋ค. ๊ทธ๊ฒ์ด ํ๋ ์ผ์ ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋๊ณ ๋ณ๊ฒฝํ ์ ์๋ ๋ชฉ๋ก์ ๋ง๋๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ์ฌ์ ํ ๋์ ๋ฐฉ์์ผ๋ก ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ๋ ค๊ณ ํ๋ฉด ์์ธ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ ์ฉ๋๊ฐ ์์ง๋ง ์ง์ ํ ์ ํ์ ์๋๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. .asList()๋ฅผ ์ธ์๋ก ์ฌ์ฉ ์ด๊ฒ์ Java์์ ๋ฐฐ์ด์ ๋ชฉ๋ก์ผ๋ก ๋ณํํ๋ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์
๋๋ค. .asList() ๋ฉ์๋๊ฐ ๋ชฉ๋ก์ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ArrayList์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. ๋ค์์ ArrayList๋ฅผ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
๊ทธ๋ฌ๋ฉด 10๊ฐ์ ๋น ์
์ด ์๋ ArrayList๊ฐ ์์ฑ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋์ ์๋ ()๋ฅผ ์ฌ์ฉํ์ฌ ArrayList๋ฅผ ์ฑ์ฐ๋ ์ธ์๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ .asList ๋ฉ์๋์ ๊ฒฐํฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ด ์์ต๋๋ค.
ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
์ด๋ ๊ฒ ํ๋ฉด .asList() ๋ฉ์๋ ์ ์ํด ์์ฑ๋ ๋ชฉ๋ก์ด ArrayList๋ก ์ ๋ฌ๋๋ฏ๋ก ์ด์ ํ์์ ๋ฐ๋ผ ๋์ ์ผ๋ก ์กฐ์ํ ์ ์์ต๋๋ค. Collections.addAll() ๋ฉ์๋ ์ฌ์ฉ Java์์ Array๋ฅผ ArrayList๋ก ๋ณํํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. Array์ ๋ด์ฉ์ ArrayList๋ก ์ ๋ฌํฉ๋๋ค. ์ด ๋ฉ์๋์ ์ผ๋ฐ ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Collections.addAll(c, T);
์ฌ๊ธฐ์ c ๋ ๋ชฉ์ ์ง์ด๊ณ T ๋ ์ ๋ฌ๋๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
์ด๋ ๊ฒ ํ๋ฉด ๋ฐฐ์ด ๋ณผํธ์ ์ ์ฒด ๋ด์ฉ์ด ์ ArrayList๋ก ์ ๋ฌ๋ฉ๋๋ค. ArrayList๋ฅผ ๋ฐฐ์ด๋ก ๋ณํ Java์์ ArrayList๋ฅผ ๋ฐฐ์ด๋ก ๋ณํํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ArrayList์๋ .toArray(a) ๋ฉ์๋๊ฐ ์์ต๋๋ค . ์ฌ๊ธฐ์ a๋ ๋์์
๋๋ค. ์๋ฅผ ๋ค์ด ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
์ด์ ๊ฐ์ด Java์์ ๋ชฉ๋ก์ ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํ๋ฉด ๋ฅ ์นดํผ๊ฐ ์์ฑ๋ฉ๋๋ค. ์ฆ, Array์ ๋ํ ๋ชจ๋ ์ฐธ์กฐ๋ ArrayList์ ๋ํ ์ฐธ์กฐ์ ๋ค๋ฆ
๋๋ค. ๋ฐ๋ผ์ ArrayList์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ Array์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ํ
์คํธํด์ผ ํ ๋ Java ๋ชฉ๋ก์ ๋ฐฐ์ด๋ก ๋ณํํ๋ ๊ฒ์ด ์ ์ฉํฉ๋๋ค.
GO TO FULL VERSION