๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Java

[Java] ์ž๋ฐ” ์ปฌ๋ ‰์…˜ Map

๋ฐ˜์‘ํ˜•

Map์ด๋ž€?

Map์€ ํ‚ค(key)์™€ ๊ฐ’(value)์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ์ปฌ๋ ‰์…˜์ด๋‹ค. ํŠน์ง•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ํ‚ค์™€ ๊ฐ’์ด ์กด์žฌํ•œ๋‹ค.
  2. ํ‚ค๊ฐ€ ์—†์ด ๊ฐ’๋งŒ ์ €์žฅ๋  ์ˆ˜๋Š” ์—†๋‹ค.
  3. ๊ฐ’ ์—†์ด ํ‚ค๋งŒ ์ €์žฅํ•  ์ˆ˜๋„ ์—†๋‹ค.
  4. ํ‚ค๋Š” ํ•ด๋‹น Map์—์„œ ๊ณ ์œ ํ•ด์•ผ๋งŒ ํ•œ๋‹ค.
  5. ๊ฐ’์€ Map์—์„œ ์ค‘๋ณต๋˜์–ด๋„ ์ƒ๊ด€ ์—†๋‹ค.

Map ๋ฉ”์†Œ๋“œ

๋ฆฌํ„ด ํƒ€์ž… ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ ๋ฐ ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค๋ช…
V put(K key, V value) ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ ๋ณ€์ˆ˜์ธ ํ‚ค๋ฅผ ๊ฐ–๋Š”, ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜์ธ ๊ฐ’์„ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.
V get(Object key) ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋„˜๊ฒจ์ค€๋‹ค.
V remove(Object key) ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋„˜๊ฒจ์ฃผ๋ฉฐ, ํ•ด๋‹น ํ‚ค์™€ ๊ฐ’์„ ์‚ญ์ œํ•œ๋‹ค.
Set< K > keySet() ํ‚ค์˜ ๋ชฉ๋ก์„ Set ํƒ€์ž…์œผ๋กœ ๋„˜๊ฒจ์ค€๋‹ค.
Collection< V > values() ๊ฐ’์˜ ๋ชฉ๋ก์„ Collection ํƒ€์ž…์œผ๋กœ ๋„˜๊ฒจ์ค€๋‹ค.
Set<Map.Entry<K,V>> entrySet() Map ์•ˆ์— Entry๋ผ๋Š” ํƒ€์ž…์˜ Set์„ ๋„˜๊ฒจ์ค€๋‹ค.
int size() Map์˜ ํฌ๊ธฐ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
void clear() Map์˜ ๋‚ด์šฉ์„ ์ง€์šด๋‹ค.

Map์˜ ์ข…๋ฅ˜

Map ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋“ค์€ ๋งค์šฐ ๋‹ค์–‘ํ•˜๋‹ค. ๊ทธ ์ค‘์—์„œ HashMap, TreeMap, LinkedHashMap ๋“ฑ์ด ๊ฐ€์žฅ ์œ ๋ช…ํ•˜๊ณ , Hashtable์ด๋ผ๋Š” ํด๋ž˜์Šค๋„ ์žˆ๋‹ค.

Hashtable์€ ์ผ๋ฐ˜์ ์ธ Map ํด๋ž˜์Šค๋“ค๊ณผ ๋‹ค๋ฅด๋‹ค. ์ฐจ์ด์ ์€ ๋‹ค์œผ๋ชจ๊ฐ€ ๊ฐ™๋‹ค.

  • Map์€ ์ปฌ๋ ‰์…˜ ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, Hashtable์€ Enumeration ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • Map์€ ํ‚ค, ๊ฐ’, ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœํ™˜ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, Hashtable์€ ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœํ™˜ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค.
  • Map์€ ์ดํ„ฐ๋ ˆ์ด์…˜์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋„์ค‘์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์ง€๋งŒ, Hashtable์€ ๊ทธ๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • HashMap์€ ํ‚ค๋‚˜ ๊ฐ’์— null์ด ์ €์žฅ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ Hashtable์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • HashMap์€ ์—ฌ๋Ÿฌ ์“ฐ๋ ˆ๋“œ์—์„œ ์•ˆ์ „ํ•˜์ง€ ์•Š์ง€๋งŒ, Hashtable์€ ์—ฌ๋Ÿฌ ์“ฐ๋ ˆ๋“œ์—์„œ ์•ˆ์ „ํ•˜๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ HashMap์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, HashMap์€ ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜์ง€ ์•Š์•„์„œ, ์ €์žฅํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค. ๋งŒ์•ฝ์— ํ‚ค๊ฐ’์œผ๋กœ ์ •๋ ฌ๋œ Map์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด TreeMap์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

์ž๋ฐ”์˜ ็ฅž1 2nd Edition / ์ด์ƒ๋ฏผ ์ง€์Œ

๋ฐ˜์‘ํ˜•

'Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] ์ž๋ฐ”๋ž€?  (0) 2022.05.01
[Java] ์ŠคํŠธ๋ฆผ(Stream)  (0) 2022.02.16
[Java] ์ž๋ฐ” ์ปฌ๋ ‰์…˜ Set  (0) 2022.01.11
[Java] String ํด๋ž˜์Šค ์ •๋ฆฌ  (0) 2022.01.08
[Java] ์ƒ์†์ด๋ž€?  (0) 2022.01.06