MapleStory Cookie With Halo

โ˜• JAVA/โ˜• Variables & Data Type

[JAVA]HashMap<key, value>

๋‰ด์ด NUEY 2024. 11. 26. 18:43
๋ฐ˜์‘ํ˜•

 

๐Ÿ’ก Hashtable
HashMap์˜ ๊ตฌํ˜•๋ฒ„์ „์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.
๊ฑฐ์˜ ๋™์ผํ•˜๋‚˜ ์ฐจ์ด์ ์€ Hashtable์€ ๋™๊ธฐํ™”โญ•, HashMap์€ ๋™๊ธฐํ™”โŒ๋ผ๋Š” ์ ์ด๋‹ค.
๐Ÿ’ก TreeMap

2024.11.25 - [โ˜• ์ž๋ฐ” JAVA/โ˜• ๋ณ€์ˆ˜์™€ ์ž๋ฃŒํ˜• Variables & Data Type] - [JAVA]TreeSet

TreeSet๊ณผ ๋™์ผํ•˜๊ฒŒ ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ๋ฅผ ์ด์šฉํ•œ๋‹ค.
(TreeSet์€ TreeMap์„ ๊ฐ€์ง€๊ณ  ๋งŒ๋“ค์–ด์กŒ๋‹ค.)
 ๐Ÿ’ก LinkedHashMap
์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 


 

HashMap
: Map์ธํ„ฐํŽ˜์ด์Šค์˜ ๋Œ€ํ‘œ์ ์ธ ๊ตฌํ˜„ํด๋ž˜์Šค.

  • ๋ฐ์ดํ„ฐ๋ฅผ key์™€ value ํ•œ์Œ์œผ๋กœ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒํ˜•.

  • ์ˆœ์„œโŒ, (key ์ค‘๋ณตโŒ,  ๊ฐ’ ์ค‘๋ณตโญ•)

  • ํ•ด์‹ฑHashing๊ธฐ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.
    → ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„๋„ ๊ฒ€์ƒ‰์ด ๋น ๋ฅด๋‹ค.

๐Ÿ’ก ํ•ด์‹ฑ Hashing
hash function์„ ์ด์šฉํ•ด์„œ ์ €์žฅ์œ„์น˜ index(hash code)๋ฅผ ์ฐพ๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.
์ด ๋•Œ ์ €์žฅ๊ณต๊ฐ„์„ hash table์ด๋ผ๊ณ  ํ•œ๋‹ค. 2์ฐจ์› ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ƒ๊ฒผ๋‹ค.
hash table์€ LinkedList๋ฅผ ๋ฌถ์–ด ๋ฐฐ์—ดํ˜•ํƒœ๋กœ ๋งŒ๋“  ๊ฒƒ์ด๋‹ค.

 


 

map.put(key, value)
: ๊ฐ’ ์ถ”๊ฐ€

 

  • Map์€ key(์—ด์‡„)๋กœ ๋ฌธ์„ ์—ด๊ณ  ๋“ค์–ด๊ฐ€๋“ฏ์ด, key๋กœ ๊ฐ’์ด ์žˆ๋Š” ๊ณณ(value)์„ ๋“ค์–ด๊ฐ”๋‹ค ๋‚˜์™”๋‹ค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ— key์ค‘๋ณต์ด ์—†๋‹ค๋Š” ๋ง์˜ ๋œป์€ ๊ฐ™์€ ํ‚ค๋กœ ์ €์žฅ์„ ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ๊ฐ™์€ ํ‚ค๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ๋ฎ์–ด์”Œ์šด๋‹ค๋Š” ๋ง์ด๋‹ค.

 


map.get(key)
: ๊ฐ’value๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ

 


 

๊ทธ ์™ธ ์ž์ฃผ ์“ฐ์ด๋Š” ๋ฉ”์„œ๋“œ

VScode์˜ extension 'IntelliCode'์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋“ค ์ด ๋œน๋‹ˆ๋‹ค.

  • int size() : ๋ง ๊ทธ๋Œ€๋กœ Map์‚ฌ์ด์ฆˆ. key๊ฐ€ ๋‘๊ฐœ ๋“ค์—ˆ์œผ๋ฉด 2.

  • Set entrySet()  : ์ „์ฒด์ ์ธ ํ˜•ํƒœ.

  • clear() : ์ดˆ๊ธฐํ™”ํ•ด์„œ Map์„ ๋น„์šธ ๋•Œ.

  • putAll(Map m) : ๊ธฐ๋ณธmap์— ์ƒˆ๋กœ์šด map์ „์ฒด๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • boolean containsKey(key) : ๋‚ด๊ฐ€ ์ฐพ๋Š” key๊ฐ€ ๋“ค์–ด์žˆ๋Š” ์ง€ ํ™•์ธ.

  • boolean containsValue(value) : ๋‚ด๊ฐ€ ์ฐพ๋Š” value๊ฐ€ ๋“ค์–ด์žˆ๋Š” ์ง€ ํ™•์ธ.

  • Set keySet() : key๋“ค๋งŒ ๋‚˜์—ด.

  • Collection values()  : ๊ฐ’๋“ค๋งŒ ๋‚˜์—ด.

  • boolean isEmpty() : ๋น„์—ˆ๋Š” ์ง€ ํ™•์ธ.

  • Object replace(key, value) : key์— ๋“ค์€ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ.

  • Object remove(key) : ๊ฐ’์„ ์ง€์šธ ๋•Œ.

 


 

entrySet()์™€ values()
Iterator ํ™œ์šฉ

set์œผ๋กœ ๋ฆฌํ„ดํ•˜์ง€๋งŒ ์–ด์ฐจํ”ผ set์€ ์ˆœ์„œ๊ฐ€ ์—†์–ด์„œ ์ฝ์œผ๋ ค๋ฉด
iterator๋ฅผ ์ด์š”ํ•ด์•ผ ํ•˜๋‹ˆ ์ด๋ ‡๊ฒŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒŒ ๋‚ซ์Šต๋‹ˆ๋‹ค.

 

values๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์–ด์ฐจํ”ผ ์ฝ์œผ๋ ค๋ฉด iterator๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋‹ˆ ์˜ค๋ฅธ์ชฝ์ฒ˜๋Ÿผ ์ž‘์„ฑ๊ถŒ์žฅ.

 

์š”์†Œ ํƒ€์ž…์ด ๋ณ€ํ• ์ผ์ด ์—†๋‹คํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๊ตฌ์š”.

 


 

์˜ˆ์ œ2

  • ์ด์ ๊ณผ ํ‰๊ท ์€ ๋‹ค ๋”ํ•ด์„œ ๋‚˜๋ˆ ์ฃผ๋ฉด ๋˜๊ตฌ์š”.
  • ์ตœ๊ณ ์ ์ˆ˜ : Collections.max()๋ฅผ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ตœ์ €์ ์ˆ˜ : Collections.min()์„ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

 


์˜ˆ์ œ3
๋นˆ๋„์ˆ˜ ๊ตฌํ•˜๊ธฐ

์ถœ๋ ฅ๊ฒฐ๊ณผ


์‹ค์ œ ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒŒ Map์ž…๋‹ˆ๋‹ค.
๋ณดํ†ต key์— "์–ด๋– ํ•œ ๋ชฉ๋ก"์œผ๋กœ value๋ฅผ ArrayList๋กœ ์„ค์ •ํ•˜๋ฉด ๊ทธ ๋ชฉ๋ก์ด List๋กœ ๋œจ๊ฒ ์ฃ .
Map<String, ArrayList>์ด๋Ÿฐ ์‹์œผ๋กœ์š”.

์ฐธ์กฐ์˜์ƒ

๋ฐ˜์‘ํ˜•

'โ˜• JAVA > โ˜• Variables & Data Type' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JAVA]enum  (0) 2024.11.28
[JAVA]Singleton Pattern  (0) 2024.11.26
[JAVA]TreeSet  (1) 2024.11.25
[JAVA]HashSet  (0) 2024.11.23
[JAVA]์—ฐ์‚ฐ์ž  (2) 2024.11.22