CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java์—์„œ ๋ฐฐ์—ด์„ ArrayList๋กœ ๋ณ€ํ™˜
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java์—์„œ ๋ฐฐ์—ด์„ ArrayList๋กœ ๋ณ€ํ™˜

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์•ˆ๋…•! ์˜ค๋Š˜ ์ˆ˜์—…์—์„œ๋Š” 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 ๋ชฉ๋ก์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

์–ด๋ ˆ์ด๋Š” ๋” ์ž‘์€ ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ๋Œ€ํ•œ ๋น ๋ฅธ ์•ก์„ธ์Šค ๋ฐ ๋น ๋ฅธ ์กฐ์ž‘์— ๋งค์šฐ ์œ ์šฉํ•˜์ง€๋งŒ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์€ ์žฅ๊ธฐ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ํšจ์œจ์„ฑ์ด ๋นจ๋ฆฌ ๋–จ์–ด์ง„๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ArrayList๋Š” ํ•„์š”์— ๋”ฐ๋ผ ๋…ธ๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Java ๋ฐฐ์—ด์„ ๋ชฉ๋ก์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๋ฉด ํ”„๋กœ๊ทธ๋žจ์˜ ์ „๋ฐ˜์ ์ธ ํšจ์œจ์„ฑ์ด ํ–ฅ์ƒ๋˜๊ณ  ๋Ÿฐํƒ€์ž„๋„ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION