๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/Java

[ch.11] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐœ์š” ๋ฐ List

by OR15A 2023. 11. 14.

์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ

  • ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํ‘œ์ค€ํ™”๋œ ํ”„๋กœ๊ทธ๋žจ๋ฐฉ์‹
  • ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ชจ๋“  ํด๋ž˜์Šค๋“ค์€ List, Set, Map์ค‘์— ํ•˜๋‚˜๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ํ•จ.

ํ•ต์‹ฌ ์ธํ„ฐํŽ˜์ด์Šค ์š”์•ฝ



ArrayList ํด๋ž˜์Šค (๋ฐฐ์—ด๊ธฐ๋ฐ˜)

  • List์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„, ๋ฐ์ดํ„ฐ ์ €์žฅ์ˆœ์„œ ์œ ์ง€O,์ค‘๋ณต ๋ฐ์ดํ„ฐ ํ—ˆ์šฉO.
  • Object๋ฐฐ์—ด์„ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ.
  • ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ.
  • ๋” ์ด์ƒ ์ €์žฅ๊ณต๊ฐ„์ด ์—†์œผ๋ฉด ๋ณด๋‹ค ํฐ ๋ฐฐ์—ด์„ ์ƒ์„ฑ→๋ณต์‚ฌ→์ €์žฅ
  • ์š”์†Œ ์‚ญ์ œ ์‹œ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ง€์šฐ๋ฉด ์ข‹์Œ
  • trimToSize(): ๋นˆ๊ณต๊ฐ„์„ ์—†์• ์„œ size(๊ฐ์ฒด๊ฐœ์ˆ˜)์™€ capacity(์šฉ๋Ÿ‰)์„ ๊ฐ™๊ฒŒํ•จ.
  • ์ˆœ์ฐจ์  ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€์‚ญ์ œ ๋น ๋ฆ„. ์ฝ๊ธฐ ๋น ๋ฆ„.
  • ๋น„์ˆœ์ฐจ์  ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€์‚ญ์ œ ๋Š๋ฆผ.



LinkedList ํด๋ž˜์Šค (์—ฐ๊ฒฐ๊ธฐ๋ฐ˜)

  • ๋ฐฐ์—ด์˜ ๋‹จ์ (ํฌ๊ธฐ ๋ณ€๊ฒฝ ๋ฒˆ๊ฑฐ๋กœ์›€, ๋น„์ˆœ์ฐจ์  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋Š๋ฆผ)์„ ๋ณด์™„ํ•จ.
  • ๋ถˆ์—ฐ์†์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋กœ ์—ฐ๊ฒฐํ•œ ํ˜•ํƒœ.
  • ๊ฐ ์š”์†Œ=๋…ธ๋“œ, ์ฝ๊ธฐ์™€ ์ ‘๊ทผ ๋Š๋ฆฌ๋‹ค.
  • class Node { Node next; //๋‹ค์Œ ์š”์†Œ์˜ ์ฃผ์†Œ Node prev; //์ด์ „ ์š”์†Œ์˜ ์ฃผ์†Œ Object obj; }
  • ์‚ญ์ œ๋Š” ์˜†๋…ธ๋“œ์˜ ์ฐธ์กฐ๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด๋จ=์ถ”๊ฐ€/์‚ญ์ œ๋น ๋ฆ„
  • ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ: ๋‹จ๋ฐฉํ–ฅ
  • ๋”๋ธ”๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ: ์–‘๋ฐฉํ–ฅ
  • ๋”๋ธ”์จ๊ทค๋Ÿฌ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ: ๋งจ์•ž๋’ค์—ฐ๊ฒฐ ์ถ”๊ฐ€
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„์ˆ˜๋ก ์ ‘๊ทผ์„ฑ์ด ๋–จ์–ด์ง.



ํด๋ž˜์ŠคStack / ์ธํ„ฐํŽ˜์ด์ŠคQueue

์Šคํƒ๊ณผ ํ

  • Queue q = new LinkedList( );
  • Stack์€ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ. ์ˆœ์„œ ์—ญ์ •๋ ฌ์— ์‘์šฉ.