JAVA

[Java] List ์™€ Set ์ปฌ๋ ‰์…˜

jjingle 2024. 1. 15. 14:06

List  ์ปฌ๋ ‰์…˜

  • ์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ์˜ ํ˜•ํƒœ๋กœ ์š”์†Œ๋ฅผ ์ €์žฅ
  • ์š”์†Œ๋ฅผ ์ธ๋ฑ์Šค๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์š”์†Œ๋ฅผ ์ €์žฅํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ €์žฅ ์ˆœ์„œ์˜ ์ธ๋ฑ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜๊ณ , ์ธ๋ฑ์Šค๋กœ ์š”์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œ
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ™์€ ์š”์†Œ๋ฅผ ์ค‘๋ณตํ•ด์„œ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ
  • ๋Œ€ํ‘œ์ ์œผ๋กœ ArrayList, LinkedList, Vector ํด๋ž˜์Šค๊ฐ€ ์žˆ์Œ

 

ArrayList ํด๋ž˜์Šค

  • List ์ปฌ๋ ‰์…˜ ๊ธฐ๋ฐ˜์˜ ์„ ํ˜• ์ˆœ์„œ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
  • ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ArrayList๋Š” ํฌ๊ธฐ๊ฐ€ ๊ฐ€๋ณ€์ ์ž„
  • ์ €์žฅ ์šฉ๋Ÿ‰์„ ์ดˆ๊ณผํ•˜๋ฉด ๋ถ€์กฑํ•œ ๋งŒํผ ์ž๋™์œผ๋กœ ์ €์žฅ ์šฉ๋Ÿ‰์ด ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์—, ์ผ๋ฐ˜์ ์ธ ๋ฐฐ์—ด๋ณด๋‹ค ์œ ์—ฐ์„ฑ์ด ๋›ฐ์–ด๋‚˜ ๋„๋ฆฌ ์‚ฌ์šฉ

 

Set  ์ปฌ๋ ‰์…˜

  • ๋น„์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ์˜ ํ˜•ํƒœ๋กœ ์š”์†Œ๋ฅผ ์ €์žฅํ•จ
  • ์š”์†Œ๋ฅผ ์ธ๋ฑ์Šค๋กœ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ €์žฅ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์Œ
  • ์ˆœ์„œ ์ž์ฒด๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์š”์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ฐ€์ ธ์˜ค๋Š” get() ๋ฉ”์„œ๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉฐ iterator() ๋ฉ”์„œ๋“œ๋กœ Iterator ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•จ
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ™์€ ์š”์†Œ๋ฅผ ์ค‘๋ณต ์ €์žฅํ•  ์ˆ˜ ์—†๊ณ  null๋„ ํ•˜๋‚˜๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ
  • ๋Œ€ํ‘œ์ ์œผ๋กœ HashSet, LinkedHashSet, TreeSet ํด๋ž˜์Šค ๋“ฑ์ด ์žˆ์Œ

 

HashSet ํด๋ž˜์Šค

  • Set ์ปฌ๋ ‰์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์š”์†Œ ๋ชฉ๋ก์€ ๋น„์„ ํ˜• ์ˆœ์„œ๋กœ ์ €์žฅ๋˜๊ณ , ์š”์†Œ๋ฅผ ์ค‘๋ณตํ•ด์„œ ์ €์žฅํ•  ์ˆ˜ ์—†์Œ
  • ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ํ•ด์‹œ์ฝ”๋“œ(ํ•ด์‹œ ๊ฐ’)๋กœ ๋งคํ•‘ํ•˜๋Š” ํ•ด์‹ฑ(hashing) ๋ฐฉ๋ฒ•์„ ํ™œ์šฉํ•˜๊ณ , ์ด ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ์ธ๋ฑ์Šค๋กœ ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด์„œ ์š”์†Œ๋ฅผ ์ €์žฅํ•จ