JavaRush /Java Blog /Random-KO /์ธํ„ฐํŽ˜์ด์Šค๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
fog
๋ ˆ๋ฒจ 18

์ธํ„ฐํŽ˜์ด์Šค๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ผ๋ถ€ ๋™์ž‘์„ ์„ค๋ช…ํ•˜๋Š” ๊ณต๊ฐœ์ ์ด๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ํ—ˆ์šฉ๋˜๋Š” ๊ณ„์•ฝ(ํ•ฉ์˜)์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ฌด์—‡์„ ์œ„ํ•ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฌธ์ž์—ด ๋ชฉ๋ก์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋งํฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์— ์ด ๋ชฉ๋ก์— ๋งŽ์€ ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋œ ๋‹ค์Œ ์ „์ฒด ๋ชฉ๋ก์ด ํ•œ ๋ฒˆ ์ฒ˜๋ฆฌ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž˜ ์•Œ๋ ค์ง„ ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ๋”ฐ๋ฅด๊ณ  ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค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๊ฐ€ ์—†๋”๋ผ๋„ . ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ข‹์€ ์˜ˆ๋Š” ์ž๋™์ฐจ์˜ ์Šคํ‹ฐ์–ด๋ง์ž…๋‹ˆ๋‹ค. ์ž๋™์ฐจ์—๋Š” ์Šคํ‹ฐ์–ด๋ง ํœ , ํŽ˜๋‹ฌ ๋ฐ ๊ธฐ์–ด๋ฐ•์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์ž๋™์ฐจ์—์„œ ์ด๋Ÿฌํ•œ ์š”์†Œ๋Š” ๋™์ผํ•œ ๋™์ž‘ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•ธ๋“ค์„ ์‹œ๊ณ„ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ๋Œ๋ฆฌ๋ฉด ์ž๋™์ฐจ ์ œ์กฐ์‚ฌ์— ์ƒ๊ด€์—†์ด ์†๋„๊ฐ€ ๋นจ๋ผ์ง€์ง€ ์•Š๊ณ  ์™ผ์ชฝ์œผ๋กœ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ปจํŠธ๋กค์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ฉด ๋ชจ๋ธ, ์—ฐ์‹, ์ œ์กฐ์‚ฌ ๋˜๋Š” ์—”์ง„ ์œ ํ˜•์— ๊ด€๊ณ„์—†์ด ๋ชจ๋“  ์ž๋™์ฐจ๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์™„์ „ํžˆ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ์šด์†ก ์ˆ˜๋‹จ(์˜ˆ: ์šฐ์ฃผ์„ )์ด ์ž๋™์ฐจ์™€ ๋™์ผํ•œ ์ œ์–ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–๋Š” ์ƒํ™ฉ์„ ์ƒ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋™์ฐจ๋ฅผ ์šด์ „ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•„๋Š” ๋‹น์‹ ์ด ๊ทธ๋Ÿฌํ•œ ๋ฐฐ์˜ ์กฐ์ข…์„์— ์•‰์•„ ์žˆ๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ๊ธธ์„ ์žƒ๋Š” ๊ฒƒ์„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ฐ˜๋ณตํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.LinkedListObject
  • ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํ–‰๋™์— ๊ด€ํ•œ ๊ณ„์•ฝ(ํ•ฉ์˜)์ž…๋‹ˆ๋‹ค.
  • ์ƒ์†์œผ๋กœ ๊ด€๋ จ๋˜์ง€ ์•Š์€ ํด๋ž˜์Šค๋ผ๋„ ๋งŽ์€ ํด๋ž˜์Šค๋Š” ์ด ๊ณ„์•ฝ(์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„)์„ ์ค€์ˆ˜ํ•˜๋Š” ๋ฐ ๋™์˜ํ•œ๋‹ค๊ณ  ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณ„๋„์˜ ์ธํ„ฐํŽ˜์ด์Šค์— ๋™์ž‘ ์„ค๋ช…์„ ๋ฐฐ์น˜ํ•˜๋ฉด ์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ์ด ํ–ฅ์ƒ๋˜์–ด ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„(์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค)์„ ์ƒ์†๊ณผ ๊ด€๋ จ๋˜์ง€ ์•Š์€ ํด๋ž˜์Šค๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งค์šฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION