๐Ÿ“ƒ

Map

Person
์™„๋ฃŒ์œจ%
์ƒํƒœ
์™„๋ฃŒ
๋‚˜์˜ ๋ธ”๋กœ๊ทธ

์ฃผ์ œ

๐Ÿ’ก
๋งต์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…์„ธ ~

๋ชฉ์ฐจ

  • ๋งต์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€
  • ์™œ ์จ์•ผ ํ•˜๋Š”๊ฐ€
  • ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€

๋‚ด์šฉ

 
collection : ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ์ปฌ๋ ‰์…˜์ด๋ผ๊ณ  ํ•œ๋‹ค.

๐Ÿ’จWhat [๋งต์ด๋ž€?]

  • key value ์Œ์ธ ์—”ํŠธ๋ฆฌ๋“ค์„ ์ €์žฅ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์ปฌ๋ ‰์…˜
  • ์ข…๋ฅ˜
    • hashMap
      • ๋‹ค๋ฅธ ๋งต์— ๋น„ํ•ด ๋น ๋ฅด๋‹ค
      • ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค
      • ์‹œ๊ฐ„๋ณต์žก๋„ : 1
    • TreeMap
      • key value์Œ์„ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ ˆ๋“œ ๋ธ”๋ž™ํŠธ๋ฆฌ๋กœ์ €์žฅํ•˜์—ฌ ๊ด€๋ฆฌํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํ‚ค ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค
      • comparable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ทธํ˜„ํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ •๋ ฌ๋œ ์ˆœ์„œ๋ฅผ ์กฐ์ • ํ•  ์ˆ˜ ์žˆ๋‹ค
      • ๋ ˆ๋“œ ๋ธ”๋ž™ ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” : log n์ด๋‹ค
      • ์ถ”๊ฐ€ ์‚ญ์ œ ์—ฐ์‚ฐ ๋˜ํ•œ ๊ทธ๋Ÿฌํ•˜๋‹ค.
      • hashMap๊ณผ ๋น„๊ตํ•ด์„œ๋Š” ๋น„๊ต์  ๋А๋ฆฌ๋‹ค
    • LinkedHashMap
      • ์ž…๋ ค๋œ ์ˆœ์„œ๋ฅผ ๊ธฐ์–ตํ•œ๋‹ค.
      • ์ €์žฅ๋œ ๊ฐ ํ•ญ๋ชฉ์€ Map.Entry ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•œ Node ํด๋ž˜์Šค๋กœ ๋‚ด๋ถ€์— after , before ๋ฉค๋ฒ„๋ฅผ ๊ฐ–๋Š” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค
        • ๋‚ด๋ถ€์ ์œผ๋กœ ์ด์ค‘ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค
      • ์‹œ๊ฐ„๋ณต์žก๋„๋Š” 1์„ ๊ฐ€์ง„๋‹ค

โ“Why

๐Ÿ’ก
๋น ๋ฅธ ์—‘์„ธ์Šค๋ฅผ ํ•„์š”๋กœ ํ• ๋•Œ โ€ผ๏ธ

โœ…How [๋งต์€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ๊นŒ]

  • put ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์—”ํŠธ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํ‚ค ๊ฐ’์œผ๋กœ ๋„˜๊ฒจ์ค€ ๊ฐ์ฒด์˜ ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์—”ํŠธ๋ฆฌ ๋ฐฐ์—ด์˜ ์ ‘๊ทผ ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•œ๋‹ค.
  • ํ•ด์‹œ ๊ฐ’ ๊ณ„์‚ฐ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด์‹œ ์ฝ”๋“œ ๋ฉ”์†Œ๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. ๋˜ํ•œ ํ•ด์‹œ ์ถฉ๋Œ์— ๋Œ€๋น„ํ•˜์—ฌ equals ๋ฉ”์†Œ๋“œ ๊นŒ์ง€ ์‚ฌ์šฉํ•ด์„œ ํ‚ค ๊ฐ’์ด ์ •๋ง ๊ฐ™์€ ๊ฒฝ์šฐ์—๋งŒ value๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํ‚ค ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ํด๋ž˜์Šค์˜ ํŠน์„ฑ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ๊ฒฝ์šฐ hash code ๋ฉ”์†Œ๋“œ์™€ equals ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.